JVM 之java内存模型( 三 )
3.volatile规则:对一个volatile变量的写操作先行发生于后面对这个变量的读取操作 , 这里的”后面“同样指时间上的先后顺序 。
4.线程启动规则:Thread对象的start()方法先行发生于此线程的每一个动作 。
5.线程终于规则:线程中的所有操作都先行发生于对此线程的终止(Thread.join())
6.线程中断规则:对线程interrupt()方法的调用先行发生于被中断线程的代码检测到中断事件的发生 , 可以通过Thread.interrupted()方法检测是否有中断发生 。
7.对象终结规则:一个对象初始化完成(构造方法执行完成)先行发生于它的finalize()方法的开始 。
8.传递性规则:如果操作A先行发生于操作B , 操作B先行发生于操作C , 那就可以得出操作A先行发生于操作C的结论 。
这是程序中天然存在的先行发生关系 , 可以在编码中直接使用 , 如果2个操作的关系不在此列 , 或者由这些规则无法推导出来 , 它们就没有顺序性保障 , 虚拟机可以对它们进行任意的重排序 。
- Java基础知识回顾,还记得吗?
- mybatis sharding-jdbc Java8日期
- 树莓派控制步进电机-TB6600-Java版本
- 德州点创教育JavaScript正则表达式授课大纲
- 如何编写JAVA小白第一个程序
- Python高级技巧:用一行代码减少一半内存占用
- Nokia 5.4规格曝光:6.39吋屏幕+骁龙662+4GB内存+4000mAh电池
- 国产内存价格首降,你愿意多花19为它披上国风战甲吗?
- java安全编码指南之:异常简介
- Java学习路线图
