先行发生原则Happens-before

先行发生原则Happens-before
int k = 1; //男人
int j = k; //女人


先行发生原则是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其实就是说在发生操作B之前,操作A所产生的影响能够被B观察到

简单来说:执行顺序的控制,后续代码可以监控到之前代码的所有操作

八大原则:
1.程序次序规则:
在一个线程内,按照代码的顺序,书写在前面的代码优先于发生书写在后面的代码

2.管程锁定原则:
一个unlock操作先行发生于后面对同一个锁的lock操作,注意是同一个锁

3.volatile原则:
对一个volatile变量的写操作先行发生于后面对该变量的读操作

4.线程启动原则:
Thread对象的start()方法优先于此线程的每一个动作

5.线程终止原则:
线程中所有的操作都优先发生于对此线程的终止

6.线程中断原则
对线程的interrupt()方法的调用先行发生于被中断线程的代码检测中断事件的发生 先中断再检测

7.对象终结原则:
一个对象的初始化(构造函数执行完毕)完成优先发生于它的finalize()方法的开始

8.传递性:
int a; //1
int b; //2
int c; //3

如果操作A先行发生于操作B,操作B先行发生于操作C,那么就可以得出来操作A优先发生于操作C

posted on 2020-03-29 18:58  趁你还在  阅读(115)  评论(0编辑  收藏  举报

导航