happens-before
单线程下,编写在前面的代码优先于后面的代码执行
unlock发生在lock后
volatile修饰的变量,写操作优先于读操作(多线程条件,既有read又有write,先write保存到cache-> main memory ;read再从main memory中读取)
传递规则:A优先于B,B优先于C,则A优先于C
线程中断规则,interrupt动作,必须发生在捕获动作之前(先有中断,才能捕获中断)
对象销毁规则,初始化必须发生在finalize之前
线程启动规则,start优先于run方法执行
线程终结规则,所有的操作发生在线程dead之前