Java并发编程CAS

目录

CAS是什么

CAS存在问题

ABA问题

CPU开销大

不能保证代码块的原子性

CAS实例


 

CAS是什么

CAS(Compare and Swap,比较并交换)是一种并发编程中的原子操作,用于实现多线程环境下的无锁同步。它是一种乐观锁策略,通过比较内存中的值与期望值是否相等来决定是否更新内存中的值。

CAS操作通常包括三个参数:内存地址(或者说是变量的引用)、期望值和新值。操作过程如下:

  1. 读取内存地址中的当前值(旧值);
  2. 比较旧值与期望值是否相等,如果相等则将新值写入内存地址;
  3. 如果不相等,则说明其他线程已

你可能感兴趣的:(多线程,java,开发语言)