原子類將CPU的CAS(Compare And Switch)指令封裝起來,做爲一項庫級特性提供給應用程序開發者。可是CAS有ABA的問題。因而額外的AtomicStampedReference 被提供,用來提供帶版本號的數據比較。但是CPU一次只能執行一條CAS指令,也就是說,它一次只能對一個內存地址作CAS操做,它要如何作到同時比較兩個「數據」,即操做數與其版本,呢?內存
答案是:雙字或多字CAS指令?開發
ANYWAY...it
再有就是,有CAS的效率是由MESI提升的。若是這麼說,那麼volatile作什麼呢?效率