CAS中ABA问题

在线程1最后需要写入比较时,发现预估值与内存值都为1是相同的,就会误以为之前没有其他线程操作,其时之前线程2将1->2,又将2->1,称为ABA。

4.4.1解决方法

添加类的版本号,来避免ABA问题,如原来内存值为(A,1),线程2改为(B,2),又改为(A,3),最后线程1用预期值(A,1)与内存值(A,3),进行比较就会发现不一样。

相关推荐
Tony Bai几秒前
【Go模块构建与依赖管理】09 企业级实践:私有仓库与私有 Proxy
开发语言·后端·golang
lkbhua莱克瓦248 分钟前
Java基础——集合进阶用到的数据结构知识点1
java·数据结构·笔记·github
Lucky小小吴10 分钟前
开源项目5——Go版本快速管理工具
开发语言·golang·开源
Mr.Jessy22 分钟前
Web APIs 学习第五天:日期对象与DOM节点
开发语言·前端·javascript·学习·html
杨福瑞27 分钟前
数据结构:单链表(2)
c语言·开发语言·数据结构
进化中的码农28 分钟前
Go中的泛型编程和reflect(反射)
开发语言·笔记·golang
音符犹如代码1 小时前
Java并发List实战:CopyOnWriteArrayList原理与ArrayList常见面试题
java·开发语言·面试·list
代码or搬砖1 小时前
Docker 部署 Java 项目实践
java·docker·容器
又是忙碌的一天1 小时前
抽象类和接口
java·开发语言
亮剑20181 小时前
第2节:程序逻辑与控制流——让程序“思考”
开发语言·c++·人工智能