1.程序顺序规则:一个线程中的每一个操作,happens-before于该线程中的任意后续操作。

2.监视器规则:对一个锁的解锁,happens-before于随后这个锁的加锁。

3.volatile规则:对一个volatile变量的写,happens-before于任意后续一个volatile变量的读。

4.传递性:若A happens-before B,B happens-before C,那么 A happens-before C。

5.线程启动规则:Thread对象的start()方法,happens-before于这个线程的任意后续操作。

6.线程终止规则:线程中的任意操作,happens-before于该线程的终止检测。可以使用Thread.join()方法结束,Thread.isAlive()的返回值等手段检测到线程已经终止执行。

7.线程中断操作:对线程interrupt()方法的调用,happens-before于被中断线程的代码检测到中断事件的发生,通过Thread.interrupted()方法检测到线程是否有中断发生。

8.对象终结规则:一个对象的初始化完成,happens-before于这个对象的finilize()方法的开始。

posted on 2021-11-19 09:57  Sempron2800+  阅读(41)  评论(0编辑  收藏  举报