在这里:

http://tech.meituan.com/java-memory-reordering.html

 

指令重排和内存可见性(缓存不一致)是两个不同的问题。

volatile关键字太强,即阻挡指令重排,又保证内存一致性。

unsafe.putOrderedXXX()只阻挡指令重排,不保证内存一致性。但是性能比volatile好。本文介绍了一种它的适用场景——需要确保写入B之前A一定已经写入完成了,但是不需要写A和B的结果立即被另一线程看见,则适用它。

 

相关文章:

  • 2021-10-29
  • 2021-11-02
  • 2022-12-23
  • 2021-05-28
  • 2021-09-18
猜你喜欢
  • 2021-12-30
  • 2021-06-01
  • 2022-12-23
  • 2021-12-09
  • 2022-01-24
  • 2022-12-23
  • 2021-07-30
相关资源
相似解决方案