Avatar ·

Java中synchronized关键字是什么意思?用简单的话和例子解释

大家好!我是Java新手,一直搞不懂`synchronized`关键字的作用。我读了文档,但觉得太复杂了。 我有一个简单的`Counter`类,它在多个线程中增加计数器。我期望每个线程给总计数器加1000,但结果总是不同:有时是1987,有时是2003,尽管应该是2000(两个线程各1000)。这是我的代码: ```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(); } });