JMM内存模型happen-before先行发生原则
在JMM中如果一个操作的执行结果要对另外一个操作可见性或者代码重排序,那么这两个操作必需存在happen-before(先行发生)原则。
案例
先行发生原则说明
happen-before的8条
- 次序规则
一个线程内,按照代码顺序,写在前面的操作先行发生与写在后边的操作
说明:
- 锁定规则
- volatile规则
- 传递规则
- 线程启动规则(Thread start Rule)
- 线程中断规则(Thread InterruptionRule)
- 线程终止规则(Thread Termination Rule)
- 对象终结规则(Finalizer Rule)
要先创建对象,才能清理。
总结