AtomicReference 有啥用
时间: 2023-11-29 16:47:29 浏览: 112
AtomicReference 是 Java 中的一个原子类,它可以保证对对象的原子性操作,即在多线程环境下,对于同一个对象,任意时刻只有一个线程可以修改它。这种原子性操作可以保证线程安全,避免了多线程环境下的数据竞争问题。AtomicReference 可以用于实现一些高效的并发算法,例如非阻塞算法和无锁算法等。
举个例子,假设有多个线程需要对一个共享的对象进行修改,如果不使用 AtomicReference 进行同步,那么就需要使用 synchronized 或者 Lock 等锁机制来保证线程安全,这样会导致性能下降。而使用 AtomicReference 可以避免这种情况,提高程序的并发性能。
下面是一个使用 AtomicReference 实现的线程安全的计数器的例子:
```java
import java.util.concurrent.atomic.AtomicReference;
public class Counter {
private AtomicReference<Integer> count = new AtomicReference<>(0);
public void increment() {
Integer newValue;
Integer oldValue;
do {
oldValue = count.get();
newValue = oldValue + 1;
} while (!count.compareAndSet(oldValue, newValue));
}
public int getCount() {
return count.get();
}
}
```