首页 > 其他 > 详细

原子类AtomicInteger的ABA问题

时间:2020-08-17 14:42:48      阅读:164      评论:0      收藏:0      [点我收藏+]

连环讨论

从AtomicInteger引入下面的问题
CAS->Unsafe->CAS底层思想->ABA->原子引用更新->如何规避ABA问题

ABA问题是什么

狸猫换太子
技术分享图片
假设现在有两个线程,分别是T1和T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始AB两个线程,分别从主内存中获取A值,但是因为B的执行速度更快,他先把A的值改成B,然后在修改成A,然后执行完毕,T1线程在10秒后,执行完毕,判断内存中的值为A,并且和自己预期的值一样,它就认为没有人更改了主内存中的值,就快乐的修改成B,但是实际上 可能中间经历了 ABCDEFA 这个变换,也就是中间的值经历了狸猫换太子。

所以ABA问题就是,在进行获取主内存值的时候,该内存值在我们写入主内存的时候,已经被修改了N次,但是最终又改成原来的值了

原子类AtomicInteger的ABA问题

原文:https://www.cnblogs.com/qiuwenli/p/13517218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!