CAS的全稱是Compare-And-Swap,它是CPU并發(fā)原語
它的功能是判斷內(nèi)存某個(gè)位置的值是否為預(yù)期值,如果是則更改為新的值,這個(gè)過程保證原子性
CAS并發(fā)原語體現(xiàn)在Java語言中就是sun.misc.Unsafe類的各個(gè)方法。調(diào)用UnSafe類中的CAS方法,JVM會(huì)幫我們實(shí)現(xiàn)出CAS匯編指令,這是一種完全依賴于硬件的功能,通過它實(shí)現(xiàn)了原子操作,再次強(qiáng)調(diào),由于CAS是一種系統(tǒng)原語,原語屬于操作系統(tǒng)用于范疇,是由若干條指令組成,用于完成某個(gè)功能的一個(gè)過程,并且原語的執(zhí)行必須是連續(xù)的,在執(zhí)行過程中不允許被中斷,也就是說CAS是一條CPU的原子指令,不會(huì)造成所謂的數(shù)據(jù)不一致的問題,也就是說CAS是線程安全的。