AtomicReference怎么自增
时间: 2023-10-21 16:12:27 浏览: 78
Java多线程atomic包介绍及使用方法
AtomicReference 类是 Java 中提供的一个原子性的引用类。它提供了一个 compareAndSet 方法,可以用来实现自增操作,具体实现如下:
```java
AtomicReference<Integer> atomicReference = new AtomicReference<>(0);
int oldValue;
int newValue;
do {
oldValue = atomicReference.get();
newValue = oldValue + 1;
} while (!atomicReference.compareAndSet(oldValue, newValue));
```
上述代码中,我们首先创建了一个 AtomicReference 对象,其初始值为 0。然后使用 do-while 循环,不断地获取旧值并计算新值。最后使用 compareAndSet 方法进行原子性的更新,如果旧值与 AtomicReference 中的值相等,则将其更新为新值,并返回 true,否则返回 false。如果返回 false,则说明其它线程已经修改了 AtomicReference 中的值,需要重新获取旧值并计算新值,直到成功为止。这样就实现了原子性的自增操作。
阅读全文