一篇讲Java指令重排和内存可见性的好文
生活随笔
收集整理的這篇文章主要介紹了
一篇讲Java指令重排和内存可见性的好文
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在這里:
http://tech.meituan.com/java-memory-reordering.html
?
指令重排和內(nèi)存可見性(緩存不一致)是兩個(gè)不同的問題。
volatile關(guān)鍵字太強(qiáng),即阻擋指令重排,又保證內(nèi)存一致性。
unsafe.putOrderedXXX()只阻擋指令重排,不保證內(nèi)存一致性。但是性能比volatile好。本文介紹了一種它的適用場(chǎng)景——需要確保寫入B之前A一定已經(jīng)寫入完成了,但是不需要寫A和B的結(jié)果立即被另一線程看見,則適用它。
?
轉(zhuǎn)載于:https://www.cnblogs.com/ohuang/p/5788118.html
總結(jié)
以上是生活随笔為你收集整理的一篇讲Java指令重排和内存可见性的好文的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keil C51的库函数
- 下一篇: Nginx ab压力测试