CAS 是 Compare And Swap 的缩写,即比较并交换。它是一种用于实现多线程同步的原子操作。
在 CAS 操作中,会比较内存中的某个值是否与预期值相等,如果相等则将其更新为新值,整个操作是原子性的。
以下是一个简单的 Java 示例,模拟 CAS 操作:
import java.util.concurrent.atomic.AtomicInteger;
public class CASExample {
public static void main(String[] args) {
AtomicInteger atomicInteger = new AtomicInteger(0);
int expectedValue = atomicInteger.get();
int newValue = 5;
// 使用 CAS 尝试更新值
boolean updated = atomicInteger.compareAndSet(expectedValue, newValue);
if (updated) {
System.out.println("Value updated successfully. New value: " + atomicInteger.get());
} else {
System.out.println("Failed to update value.");
}
}
}
在实际的多线程环境中,CAS 常用于实现无锁的数据结构和并发算法,以提高并发性能。