CAS

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是線程安全的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概念 CAS的全稱是Compare-And-Swap,它是cpu并發(fā)原語 它的功能是判斷內(nèi)存某個(gè)位置的值是否為預(yù)期...
    猿天下閱讀 529評(píng)論 0 0
  • compareAndSet----比較并交換 AtomicInteger.conpareAndSet(int ex...
    二毛_220d閱讀 362評(píng)論 0 0
  • 文章同步更新在個(gè)人公眾號(hào)“梓莘”,歡迎大家關(guān)注,相互交流。 一、什么是CAS CompareAndSwap,比較當(dāng)...
    霓裳夢(mèng)竹閱讀 122評(píng)論 0 0
  • 在并發(fā)編程中我們都知道i++操作是非線程安全的,這是因?yàn)?i++操作不是原子操作。 如何保證原子性呢?常用的方法就...
    AI喬治閱讀 652評(píng)論 0 0
  • 1、Unsafe 是CAS的核心類,由于Java方法無法直接訪問底層系統(tǒng),需要通過本地(native)方法來訪問,...
    Shaw_Young閱讀 400評(píng)論 0 0

友情鏈接更多精彩內(nèi)容