CAS的ABA问题(乐观锁策略)

CAS(compare and swap)乐观锁策略。

CAS(V, O, N)   V:内存中实际的值  O:期望的值,也是当前线程持有的值  N:想要改变成的新值

假设有两个线程 A 和 B  

A,和B同时拿到内存中的V值==M 也是就是期望值,

A线程 判断内存中的值等于期望值可以改 ------>将 内存中V值改位 N ,,,经过一些操作又将内存中的V值改成M,  而此时B线程呢由于是并发的 ,所以一直在比较期望的 旧值(M)与内存中的值是否相等,因为线程A经过两次更改将 内存中的值变回为了B线程期望的值(M)

所以此时 B线程成功执行操作,但A呢?以前A执行操作不就没有作用。这就是ABA问题。

 

现在的解决办法就是加上版本号,就像每次的游戏更新包一样,看起来都一样,但只要加上版本号就能区别开来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值