CAS算法的理解
CAS:Compare and Swap,即比较再替换
感觉就是一种乐观锁的思路:
jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁
对CAS的理解,CAS是一种无锁算法。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当要将v修改成B的时候,需要先将v和A进行比较,如果相等,才操作,如果不等,则不进行操作。
在原子类变量中,如java.util.concurrent.atomic中的AtomicXXX,都使用了这些底层的JVM支持为数字类型的引用类型提供一种高效的CAS操作,而在java.util.concurrent中的大多数类在实现时都直接或间接的使用了这些原子变量类