volatile確實可以保證一個引用變量的可見性,但是volatile的數組只針對數組的引用具有volatile的語義,而不是它的元素.
於是可以預見的是類似disruptor這樣的實現最好還是不要用long數組padding的方式來防止false sharing問題,這樣反而會導致可見性問題.
除非使用Unsafe.getObjectVolatile,但是unsafe無法通過較爲正常的方式調用(需要反射獲得),此外unsafe調用門檻較高,需要設置偏移量。
所以,爲了防falseSharing,padding方式還是選擇前後8個long類型的方式.
數組內部元素無法保證可見性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
《期貨-市場技術分析》讀書筆記
BloodyAngel
2024-04-29 14:32:19
《日本蠟燭圖》讀書筆記 & 技術分析回測
BloodyAngel
2024-04-29 14:32:19
pytest lastfailed原理
Believer007
2024-04-29 14:24:29
一個開源輕量級的C#代碼格式化工具(支持VS和VS Code)
追逐時光
2024-04-29 14:22:08
頂級 Javaer 都在用的 20 個類庫,真香!
Java技術棧
2024-04-29 14:21:48
Linux內核之SPI協議
藍天上的雲℡
2024-04-29 14:21:38
mongodb處理json數據很好
張博的博客
2024-04-29 14:20:08
【Nano Framework ESP32篇】使用 LCD 屏幕
東邪獨孤
2024-04-29 14:16:57
雙token+redis(token無感刷新)
uper超人
2024-04-29 14:15:37
cookie,session,token的區別
uper超人
2024-04-29 14:15:37
Asp .Net Core 系列:國際化多語言配置
IT技術派
2024-04-29 14:14:57
編譯原理PL0語法分析實驗1
孤獨的貓
2024-04-29 14:13:26
google瀏覽器插件開發
張佔嶺
2024-04-29 14:12:46
element表單中選擇 el-date-picker 選擇後沒反應
York
2024-04-29 14:09:56