目录
CAS是什么
CAS存在问题
ABA问题
CPU开销大
不能保证代码块的原子性
CAS实例
CAS是什么
CAS(Compare and Swap,比较并交换)是一种并发编程中的原子操作,用于实现多线程环境下的无锁同步。它是一种乐观锁策略,通过比较内存中的值与期望值是否相等来决定是否更新内存中的值。
CAS操作通常包括三个参数:内存地址(或者说是变量的引用)、期望值和新值。操作过程如下:
- 读取内存地址中的当前值(旧值);
- 比较旧值与期望值是否相等,如果相等则将新值写入内存地址;
- 如果不相等,则说明其他线程已