CAS原子操做——Compare & Set,或是 Compare & Swap,如今幾乎全部的CPU指令都支持CAS的原子操做,X86下對應的是 CMPXCHG 彙編指令。atom
你們應該還記得操做系統裏面關於「原子操做」的概念,一個操做是原子的(atomic),若是這個操做所處的層(layer)的更高層不能發現其內部實現與結構。原子操做能夠是一個步驟,也能夠是多個操做步驟,可是其順序是不能夠被打亂,或者切割掉只執行部分。有了這個原子操做這個保證咱們就能夠實現無鎖了。spa
相對與 加鎖......速度有提升操作系統
場景:多個變量同步原子update,且線程競爭比較激烈的狀況下,cpu消耗較嚴重的。線程
問題:ABA:一個線程修改V值假設原來是A,先修改爲B,再修改回成A。當前線程的CAS操做沒法分辨當前V值是否發生過變化orm