Sapendo cheUsi di volatili senza sincronizzazione
letture e scritture sono atomic per tutte le variabili dichiarate volatili
Question1: Può questo essere inteso come se
private volatile int x = 0;
x++;
l'operazione è atomica?
E che
Marcatura variabile volatile, non elimina tutti hanno bisogno di sincronizzare azioni atomiche, perché memory consistency errors are still possible.
Question2: Mi chiedo in quali circostanze (se presente) è possibile per vedere una variabile contrassegnata con volatile
e non vedere alcun metodo di blocchi contrassegnati sincronizzati (che tenta di accedere/modificare la variabile)?
In altre parole, tutte le variabili che devono essere protette da modifiche concorrenti devono essere contrassegnate con volatile
?
risposta eccellente e con l'esempio. Grazie. – JAM