happen-before(生效可见于,并非字面的先行执行)
- 程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。
- 监视器锁规则:解锁happens-before于加锁。
- volatile变量规则:volatile变量的写,先发生于读,这保证了volatile变量的可见性
- 传递性:A先于B,B先于C,那么A必然先于C
- start规则:线程的start()方法先于它的每一个动作
- Join规则:如果线程A执行操作ThreadB.join()并成功返回,那么线程B中的任意操作happens-before于线程A从ThreadB.join()操作成功返回。
- 程序中断规则:对线程interrupted()方法的调用先行于被中断线程的代码检测到中断时间的发生。
- 对象finalize规则:一个对象的初始化完成(构造函数执行结束)先行于发生它的finalize()方法的开始