CAS
CAS(比较并交换)是一种无锁算法,lock是对共享资源加了互斥锁;
CAS涉及三个操作数,内存地址V(即要修改的值的内存地址)、旧的预期值A和要修改的新值B,当且仅当旧的预期值A与内存地址V上的值一样时才把地址V上的值修改为新值B;
CAS伪代码表示如下:
do{
备份内存地址V上的值为旧的预期值A
基于旧的预期值A构造新值B
}while(! cas(内存地址V,旧的预期值A,新值B)