AtomicReference 使用
时间: 2024-06-06 08:02:56 浏览: 120
AtomicReference 是 Java 中的一个原子引用类用于在多线程环境下进行子操作。它可以保证对引用对象的操作是原子性的,从而保证程安全性[^1]。
下面是一个使用 AtomicReference 的示例代码,演示了如何使用 AtomicReference 来更新一个共享的引用对象:
```java
import java.util.concurrent.atomic.AtomicReference;
public class AtomicReferenceExample {
public static void main(String[] args) {
AtomicReference<String> atomicReference = new AtomicReference<>("initial value");
// 线程1尝试将引用对象更新为"new value"
Thread thread1 = new Thread(() -> {
atomicReference.compareAndSet("initial value", "new value");
});
// 线程2尝试将引用对象更新为"another value"
Thread thread2 = new Thread(() -> {
atomicReference.compareAndSet("initial value", "another value");
});
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Final value: " + atomicReference.get());
}
}
```
运行以上代码,最终输出的结果可能是"new value"或者"another value",这取决于两个线程的执行顺序。由于 AtomicReference 的 compareAndSet 方法是原子操作,所以无论线程的执行顺序如何,最终的结果都是线程安全的。
阅读全文