CAS操作

CAS操作

3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。
执行:当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。
自旋CAS:循环进行CAS操作直到成功为止
原理:CPU提供了一个单独的CSA指令,一条指令就可以完成上述操作,相当于是原子的
CAS问题

  1. 循环时间长开销很大。如果CAS失败,会一直进行尝试。如果CAS长时间一直不成功,可能会给CPU带来很大的开销。
  2. 只能保证一个共享变量的原子操作。可以将多个共享变量合并为一个,AtomicReference
  3. ABA问题。使用版本号解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值