Loading

happens-before

http://ifeve.com/easy-happens-before/

https://en.wikipedia.org/wiki/Happened-before

https://blog.csdn.net/ns_code/article/details/17348313

https://www.zhihu.com/question/57682334

https://www.jianshu.com/p/1508eedba54d

 

Happens-before是用来指定两个操作之间的执行顺序。提供跨线程的内存可见性。
在Java内存模型中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必然存在happens-before关系。
Happens-before规则如下
  程序顺序规则

    单个线程中的每个操作,总是前一个操作happens-before于该线程中的任意后续操作
  监视器锁规则

    对一个锁的解锁,总是happens-before于随后对这个锁的加锁

  volatile变量规则

    对一个volatile域的写,happens-before于任意后续对这个volatile域的读
  传递性

    A happens-before B, B happens-before C, 则 A happens-before C
  Start规则
  Join规则

posted @ 2018-04-15 00:27  dai.sp  阅读(182)  评论(0编辑  收藏  举报