Skip to content

说一说如何解决 ABA 问题?为什么能解决?解决思路是什么?

cxuan edited this page Sep 20, 2020 · 1 revision

aba问题出现在cas机制的操作中,cas 比较并更新,比如说cas(期望的值,更新的值),如果发现变量是期望的值,那么就将该值替换为更新的值。这里面存在的问题就在于,如果期望的值中途被人改掉了,但是后面又被改了回来, cas机制不能发现这个过程,也是发现期望值其实中间发生过变动。解决方式 给数据加上版本号或者时间戳,比较期望值的时候 比较的是值和版本号或者时间戳,即使值相同,但是如果中间发生过变化 那么时间戳或者版本号也不同。

Clone this wiki locally