2020-10-16:CAS知道么?底層實作? 會引發什么問題?如何解決ABA問題?#福大大架構師每日一題#
uj5u.com熱心網友回復:
比較和交換,底層實作是樂觀鎖,用C++原語實作。可以用時間戳來解決ABA問題uj5u.com熱心網友回復:
CAS 為Compare-And-Swap,它是CPU并發原語CAS并發原語是一種完全依賴于硬體的功能,通過它實作了原子操作。體現在JAVA語言中就是sun.misc.Unsafe類中的各個方法。呼叫Unsafe中的CAS方法,JVM實作出CAS匯編指令。
問題:
回圈時間長CPU開銷大
只能保證一個共享變數的原子操作
會引發ABA問題
ABA解決:增加時間戳
uj5u.com熱心網友回復:
比較并交換 , 使用樂觀鎖 .不能保證代碼塊原子性,cpu開銷大.uj5u.com熱心網友回復:
cmpxchg原子指令。aba,回圈開銷大,一個共享變數。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/175046.html
標籤:Java相關
下一篇:計算機網路作業總結10.15
