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问题。
现在的解决办法就是加上版本号,就像每次的游戏更新包一样,看起来都一样,但只要加上版本号就能区别开来。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务