En termes simples, les valeurs marquées comme volatiles peuvent changer de manière imprévisible, elles ne peuvent donc pas être mises en cache et doivent être lues à partir de la mémoire principale à chaque fois. Opération d'incrémentation, cette valeur peut changer entre la lecture et l'écriture, donc le résultat correct ne peut pas être écrit. Encore une fois, cette valeur change de manière incontrôlable, donc l'invariant peut ne pas être satisfait.
En termes simples, les valeurs marquées comme volatiles peuvent changer de manière imprévisible, elles ne peuvent donc pas être mises en cache et doivent être lues à partir de la mémoire principale à chaque fois.
Opération d'incrémentation, cette valeur peut changer entre la lecture et l'écriture, donc le résultat correct ne peut pas être écrit.
Encore une fois, cette valeur change de manière incontrôlable, donc l'invariant peut ne pas être satisfait.
Il se pourrait que
volatile
l'atomicité de l'opération ne puisse être garantieVoir : La signification du mot-clé volatile en java