Avatar ·

Que signifie le mot-clé synchronized en Java ? Expliquez en termes simples avec des exemples

Bonjour, collègues ! Je suis novice en Java et je n'arrive pas à comprendre ce que fait le mot-clé `synchronized`. J'ai lu la documentation, mais elle me semble trop compliquée. J'ai une classe simple `Counter` qui incrémente un compteur dans plusieurs threads. Je m'attends à ce que chaque thread ajoute 1000 au compteur total, mais le résultat est toujours différent : tantôt 1987, tantôt 2003, alors qu'il devrait être exactement 2000 (deux threads de 1000). Voici mon code : ```java public class Counter { private int count = 0; public void increment() { count++; } public int getCount() { return count; } } public class Main { public static void main(String[] args) throws InterruptedException { Counter counter = new Counter(); Thread t1 = new Thread(() -> { for (int i = 0; i < 1000; i++) { counter.increment(); } }); Thread t2 = new Thread(() -> { for (int i = 0; i < 1000; i++) { counter.increment(); } }); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(counter.getCount()); } } ```