CAS的ABA问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41751625/article/details/89631042

   CAS(CompareAndSwap)比较替换是一种无锁的并发安全控制方式,通过预期值与当前值比较是否相同来判断是否有其他的线程同时修改共享资源,但是CAS中会存在一个ABA的问题,所谓的ABA问题值的是CAS的比较结果是正确的(即预期值与当前值相同),但是可能在其中经历了A->B->A的过程。

  即其他的线程先把当前值由A修改为了B,然后又修改为了A,那么通过CAS的视角,即认为其他的线程没有修改过共享资源,但是其实其他的线程修改过,只不过从整个结果来看,当前的值和预期的值相同,这种问题可能在某些情况下会存在一些隐患。

猜你喜欢

转载自blog.csdn.net/weixin_41751625/article/details/89631042