Avatar ·

À quoi sert le mot-clé volatile en Java ? Expliquez avec des exemples

Bonjour à tous ! Je suis un développeur Java débutant, et dernièrement j'étudie activement le multithreading. Je suis tombé sur le mot-clé `volatile`, mais je ne comprends pas encore complètement à quoi il sert et quand l'utiliser. J'ai écrit un petit code où un thread modifie le flag `running`, et un autre thread le vérifie dans une boucle. Sans `volatile`, le programme fonctionne parfois incorrectement — le deuxième thread ne voit pas le changement et continue de s'exécuter. Voici mon code : ```java public class TestVolatile { private static boolean running = true; public static void main(String[] args) throws InterruptedException { Thread worker = new Thread(() -> { while (running) { // faire quelque chose } System.out.println("Worker arrêté"); }); worker.start(); Thread.sleep(1000); running = false; // changer le flag dans le thread principal System.out.println("Flag mis à false"); } } ``` Le problème est que parfois le progr