volatile 关键字是如何保证可见性的?
生活随笔
收集整理的這篇文章主要介紹了
volatile 关键字是如何保证可见性的?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我們可以使用【hsdis】這個工具,來查看前面演示的這段代碼的匯編指令,具體的使用請查看使用說明文檔?
在運行的代碼中,設置jvm參數(shù)如下
【-server?-Xcomp?-XX:+UnlockDiagnosticVMOptions?-XX:+PrintAssembly?-XX:CompileCommand=compileonly,*App.*(替換成實際運行的代碼)】
然后在輸出的結果中,查找下lock指令,會發(fā)現(xiàn),在修改帶有volatile修飾的成員變量時,會多一個lock指令。lock是一種控制指令,在多處理器環(huán)境下,lock匯編指令可以基于總線鎖或者緩存鎖的機制來達到可見性的一個效果。
為了讓大家更好的理解可見性的本質,我們需要從硬件層面進行梳理
?
總結
以上是生活随笔為你收集整理的volatile 关键字是如何保证可见性的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初步认识Volatile-volatil
- 下一篇: 初步认识Volatile-从硬件层面了解