CAS全程为Compare and Swap,即比较再交换。
jdk5增加了并发包java.util.concurrent简称JUC,其下面的类使用CAS算法实现了区别于synchronized同步锁的一种乐观锁。
jdk5之前Java语言是靠synchronized关键字保证同步的,这是一种排斥锁也是悲观锁。悲观地认为程序中的并发情况严重,所以严防死守。CAS属于乐观锁,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。
可参考
https://www.jianshu.com/p/ae25eb3cfb5d
https://www.cnblogs.com/barrywxx/p/8678698.html
https://www.lagou.com/lgeduarticle/92974.html