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();
}
});