在这里:http://tech.meituan.com/java-memory-reordering.html 指令重排和内存可见性(缓存不一致)是两个不同的问题。volatile关键字太强,即阻挡指令重排,又保证内存一致性。unsafe.putOrderedXXX()只阻挡 ...
在这里:
http://tech.meituan.com/java-memory-reordering.html
指令重排和内存可见性(缓存不一致)是两个不同的问题。
volatile关键字太强,即阻挡指令重排,又保证内存一致性。
unsafe.putOrderedXXX()只阻挡指令重排,不保证内存一致性。但是性能比volatile好。本文介绍了一种它的适用场景——需要确保写入B之前A一定已经写入完成了,但是不需要写A和B的结果立即被另一线程看见,则适用它。
原标题:一篇讲Java指令重排和内存可见性的好文
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。