volatile 不能保证原子性代码示例
时间: 2023-10-18 11:08:45 浏览: 86
volatile 实例讲解
volatile关键字只能保证可见性,但不能保证原子性。下面是一个示例代码:
```java
public class VolatileNotAtomicExample {
private volatile int counter = 0;
public void increment() {
counter++;
}
public int getCounter() {
return counter;
}
}
```
在上面的示例中,我们使用了volatile关键字来保证可见性。但是,当多个线程同时调用increment方法时,由于counter++不是原子操作,可能会出现竞态条件,导致结果不是我们期望的结果。如果我们需要保证原子性,可以使用synchronized关键字或者AtomicInteger等原子类来实现。
阅读全文