AtomicReference.compareAndExchange
时间: 2023-08-15 18:13:51 浏览: 188
J.U.C系列线程安全的理论讲解编程开发技术共6页.pdf
`AtomicReference.compareAndExchange` 是 Java 中 `AtomicReference` 类的一个方法。它用于原子性地比较并交换 `AtomicReference` 对象的值。
该方法的语法如下:
```java
public final boolean compareAndExchange(V expectedValue, V newValue)
```
当当前 `AtomicReference` 的值与 `expectedValue` 相等时,将 `AtomicReference` 的值设置为 `newValue`,并返回 `true`,否则返回 `false`。这个操作是原子性的,意味着在多线程环境下可以保证操作的一致性和可见性。
以下是一个简单的示例代码:
```java
AtomicReference<String> atomicRef = new AtomicReference<>("initial value");
String expectedValue = "initial value";
String newValue = "new value";
boolean exchanged = atomicRef.compareAndExchange(expectedValue, newValue);
System.out.println("Exchanged: " + exchanged);
System.out.println("New value: " + atomicRef.get());
```
输出结果将会是:
```
Exchanged: true
New value: new value
```
这个方法在一些并发编程场景中非常有用,可以确保对共享变量的原子性操作和线程安全性。
阅读全文