CAS中的ABA问题

  1. CAS(V,Expected,NewValue),CAS自旋时,如果操作途中Expected值没有改变则会赋予其新的值(NewValue),如果发生改变则会将改变后的值赋给Expected重新进行上一步操作,但是这中间如果有其他线程将Expected的值改变为N之后又改回Expected,则CAS无法识别,称之为ABA问题,基本数据类型时不会有问题,但是引用数据类型则不行,地址还是原来的地址,但是内容可能会有变化,解决这个问题的方法就是加一个版本号(version),同时检查Expected和version。
  2. 2  1:47:39

猜你喜欢

转载自www.cnblogs.com/Courage129/p/12721624.html