CAS

CAS(Compare And Swap)即比較并交換,CAS 是樂(lè)觀鎖技術(shù),當(dāng)多個(gè)線(xiàn)程嘗試使用 CAS 同時(shí)更新同一個(gè)變量時(shí),只有其中一個(gè)線(xiàn)程能更新變量的值,而其它線(xiàn)程都失敗,失敗的線(xiàn)程并不會(huì)被掛起,而是被告知這次競(jìng)爭(zhēng)中失敗,并可以再次嘗試。它包含三個(gè)參數(shù):V 內(nèi)存值,預(yù)期值 A,要修改的新值 B。當(dāng)且僅當(dāng)預(yù)期值 A 和內(nèi)存值 V 相同時(shí),將內(nèi)存值 V 修改為 B,否則什么都不做。

阻塞和自旋其實(shí)是線(xiàn)程兩種等待操作共享資源的方式,這兩種方式也是比較常用的方式,它們主要區(qū)別在于:

阻塞:線(xiàn)程進(jìn)入阻塞狀態(tài),其表現(xiàn)為放棄CPU時(shí)間片,等待后期被操作系統(tǒng)線(xiàn)程調(diào)度器喚醒,然后在繼續(xù)執(zhí)行線(xiàn)程中的邏輯。
自旋:線(xiàn)程進(jìn)入自旋狀態(tài),其表現(xiàn)為不放棄CPU時(shí)間片,利用CPU來(lái)進(jìn)行“旋轉(zhuǎn)”,也就是不斷地進(jìn)行重試。

?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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