Salve a tutti sono nuovo ed ero indeciso in quale sezione inserire questo topic, se in programmazione o qui, chiedo scusa se ho sbagliato.
Sto utilizzando TOMCAT per gestire le servlet con apache come web server e poi utilizzo l'approccio SOAP nel quale ho definito un servizio che contiene varie risorse condivise.
Tali risorse per esempio una variabile booleana chiamata x. Questa variabile x viene letta da tutti i web client e scritta da solo uno specifico web client ( admin ) , quindi è un classico problema di lettore scrittore ma in particolare a me non interessa se i lettori leggono in maniera sbagliata questa variabile ( se leggono true o false non importa, l' importante è che lo scrittore possa scrivere immediatamente quando vuole ).
Questa cosa l'ho realizzata semplicemente non utilizzando nulla, nè synchronized nè semafori nè soluzini con semafori per lettori/scrittori ma semplicemente con un metodo setX( boolean b ) che non fa altro x=b; e un metodo getX() che non fa altro che return x;
Domanda: se non inserisco semafori o costrutti synchronized e realizzo metodi come ho descritto sopra, la variabile X viene comunque gestita in mutua esclusione? o i vari thread delle http request, sia dei scrittori sia dei lettori, opereranno contemporaneamente?
Domanda: in generale anche se a me non importa se un lettore legga true o false, bisogna comunque risolvere la soluzione lettore/scrittore con semafori? Questo perchè comunque può portare ad un errore quando un lettore legge mentre lo scrittore scrive?
Vi ringrazio anticipatamente
Sto utilizzando TOMCAT per gestire le servlet con apache come web server e poi utilizzo l'approccio SOAP nel quale ho definito un servizio che contiene varie risorse condivise.
Tali risorse per esempio una variabile booleana chiamata x. Questa variabile x viene letta da tutti i web client e scritta da solo uno specifico web client ( admin ) , quindi è un classico problema di lettore scrittore ma in particolare a me non interessa se i lettori leggono in maniera sbagliata questa variabile ( se leggono true o false non importa, l' importante è che lo scrittore possa scrivere immediatamente quando vuole ).
Questa cosa l'ho realizzata semplicemente non utilizzando nulla, nè synchronized nè semafori nè soluzini con semafori per lettori/scrittori ma semplicemente con un metodo setX( boolean b ) che non fa altro x=b; e un metodo getX() che non fa altro che return x;
Domanda: se non inserisco semafori o costrutti synchronized e realizzo metodi come ho descritto sopra, la variabile X viene comunque gestita in mutua esclusione? o i vari thread delle http request, sia dei scrittori sia dei lettori, opereranno contemporaneamente?
Domanda: in generale anche se a me non importa se un lettore legga true o false, bisogna comunque risolvere la soluzione lettore/scrittore con semafori? Questo perchè comunque può portare ad un errore quando un lettore legge mentre lo scrittore scrive?
Vi ringrazio anticipatamente