java内存模型-先行发生原则

 2019-12-10 16:20  阅读(1274)
文章分类:Java Core

上面说过,如果要靠synchronized和volatile来保证有序性,那java就是一个失败的语言,在java语言中有一个“先行发生”原则。

java天然的先行发生关系如下:
程序次序规则
管程锁定规则
线程启动规则:线程start方法先行发生于此线程的每一个动作
线程终止规则:线程中所有操作都先行发生于此线程的终止检测,所以,我们才能利用Thread.join()方法结束、Thread.isAlive的返回值等手段检测线程已经终止执行
线程中断原则
对象终结原则
传递性:A先于B,B先行于C,那么A先行于C;

注意:这里的先行和时间上先行是两码事;

参考《深入理解java虚拟机》

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> java内存模型-先行发生原则

相关推荐