--C'est un modificateur donné aux variables. Dans certains cas, il peut être utilisé au lieu de synchronisé.
private static volatile int count = 0;
#Code comme ci-dessous...
boolean flg = true;
while(flg){
System.out.println("hello!");
}
#Optimisé comme suit...→ La boucle ne se termine pas en supposant que flg est changé en false dans un autre thread!
if(flg){
while(true){
System.out.println("hello!");
}
}
--Synchronized est plus sophistiqué (volatile est une version simplifiée de synchronized) --volatile a le rôle ci-dessus, mais il n'est pas thread-safe. --volatile a le rôle de synchroniser les variables entre le thread et la mémoire principale (= lire la valeur de la mémoire principale sans mise en cache), mais synchronized a également le rôle d'effectuer un contrôle exclusif. -C'est une erreur de dire que ** volatile ** peut être utilisé pour le contrôle exclusif.
[Difference Between Volatile and Synchronized Keywords in Java] https://dzone.com/articles/difference-between-volatile-and-synchronized-keywo
Recommended Posts