刚开始看这本书的时候很经常看到cas算法,个人觉得cas算法在并发编程中也是挺重要的的一部分,cas是比较并交换的意思(compare and swap),campareAndSwap(int expect,int update),函数中有两个值,expect是期望值,update是更新值,用expect值去和对象中的值(假设为current),当current值相等于expect时,修改current值为update,否则,不修改,刚开始了解cas算法的时候,因为没有了解过实际的应用场景,而且使用单线程的思维方式去考虑cas算法的使用场景,十分不理解这个算法有什么用,但是当你考虑多个线程对一个共享变量进行修改时,就能发现它的好处了,举个多线程中通用的例子,100个线程对一个共享变量(初始值为0)做++操作(每个线程做一次++操作),得出结果小于100。当你使用cas算法,每个线程首先获取这个共享变量设为expect,对变量做了加1操作为update,使用cas算法修改共享变量,假设其他线程没有修改过共享变量,此时expect和共享变量值相等,cas算法将共享变量修改为update值,否则不修改共享变量,在重复如上的操作直到修改成功。