CAS算法

简介

CAS (Compare and swap),比较交换。拿旧值A和值V比较,如果相同,则修改为新值B。

ABA问题

如果一个值原来是A,后面更改为B,再更改为A,使用CAS方式则不能发现值已经发生变化了。

ABA问题解决方案

加入版本库,类似于数据库乐观锁。
如1A,2B,3A
JDK1.5开始提供了AtomicStampedReference来解决此问题。

你可能感兴趣的:(CAS算法)