Avatar ·

Was bedeutet das Schlüsselwort synchronized in Java? Erklären Sie es einfach mit Beispielen

Hallo Kollegen! Ich bin neu in Java und verstehe nicht, was das Schlüsselwort `synchronized` macht. Ich habe die Dokumentation gelesen, aber sie scheint zu kompliziert. Ich habe eine einfache Klasse `Counter`, die einen Zähler in mehreren Threads erhöht. Ich erwarte, dass jeder Thread 1000 zum Gesamtzähler hinzufügt, aber das Ergebnis ist immer unterschiedlich: mal 1987, mal 2003, obwohl es genau 2000 sein sollte (zwei Threads mit je 1000). Hier ist mein 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++) { counte