【每日一题】如何解决ABA问题?为什么能解决?解决思路是什么?

Posted by 石福鹏 on 2020-10-15
Estimated Reading Time 1 Minutes
Words 236 In Total
Viewed Times

问题分析

aba问题出现在cas机制的操作中,cas 比较并更新,比如说cas(期望的值,更新的值),如果发现变量是期望的值,那么就将该值替换为更新的值。

这里面存在的问题就在于,如果期望的值中途被人改掉了,但是后面又被改了回来, cas机制不能发现这个过程,也是发现期望值其实中间发生过变动。

解决方式

给数据加上版本号或者时间戳,比较期望值的时候 比较的是值和版本号或者时间戳,即使值相同,但是如果中间发生过变化 那么时间戳或者版本号也不同。

如果是基础类型:无所谓。不影响结果值;

如果是引用类型:就像是你的女朋友和你分手之后又复合,中间经历了别的男人。


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !