[英]How java AtomicReference works under the hood
Java AtomicReference如何在引擎蓋下工作? 我嘗試查看代碼,但基於sun.misc.Unsafe,所以可能另一個問題是不安全是如何工作的?
這是特定於當前實現的並且可以改變但不一定是文檔
Java AtomicReference如何在引擎蓋下工作
有兩個操作。 單讀/寫或原子交換。
volatile
加載或存儲。 另一個問題是不安全是如何運作的?
不安全通過利用處理器指令的本機方法工作。
資料來源:
AtomicReference有兩個領域: -
* value,它是引用* valueOffset,它是來自'this'的值的位置,即AtomicReference
在compareAndSwap(預期,更新)中,使用==語義與“expected”比較此位置+ valueOffset處的對象,如果==,則使用“updated”進行更新。
這是一個單一的硬件指令,因此保證以原子方式返回錯誤或失敗。
從openJDK中讀取不安全的源代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.