您的位置:首页 > 编程语言 > Java开发

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

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

java天然的先行发生关系如下:

程序次序规则

管程锁定规则

线程启动规则:线程start方法先行发生于此线程的每一个动作

线程终止规则:线程中所有操作都先行发生于此线程的终止检测,所以,我们才能利用Thread.join()方法结束、Thread.isAlive的返回值等手段检测线程已经终止执行

线程中断原则

对象终结原则

传递性:A先于B,B先行于C,那么A先行于C;

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

参考《深入理解java虚拟机》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: