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),进行比较就会发现不一样。

相关推荐
信奥卷王40 分钟前
[GESP202503 五级] 原根判断
java·数据结构·算法
小咕聊编程1 小时前
【含文档+源码】基于SpringBoot的过滤协同算法之网上服装商城设计与实现
java·spring boot·后端
Zz_waiting.1 小时前
Spring 原理
java·spring·spring自动管理
Predestination王瀞潞4 小时前
IO操作(Num22)
开发语言·c++
瓯雅爱分享5 小时前
Java+Vue构建的采购招投标一体化管理系统,集成招标计划、投标审核、在线竞价、中标公示及合同跟踪功能,附完整源码,助力企业实现采购全流程自动化与规范化
java·mysql·vue·软件工程·源代码管理
宋恩淇要努力5 小时前
C++继承
开发语言·c++
沿着路走到底6 小时前
python 基础
开发语言·python
沐知全栈开发7 小时前
C# 委托(Delegate)
开发语言
mit6.8247 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
诸神缄默不语8 小时前
Maven用户设置文件(settings.xml)配置指南
xml·java·maven