happens-before之8条
2022-6-7 Mr Chang JUC
-
次序规则
一个线程内, 按照代码顺序,写在前面的操作线性发生于写在后面的操作;
-
锁定规则
一个unLock操作先行发生于后面(这里的“后面”是指时间上的先后)对同一个锁的lock操作
-
volatile变量规则
对一个volatile变量的写操作先行发生于后面对这个变量的读操作。前面的写对后面的读是可见的。
-
传递规则
如果操作A先行发生于操作B,操作B先行发生于操作C,则可以得出操作A先行发生于操作C
-
线程启动规则(Thread Start Rule)
线程对象的start方法先行发生与线程里面的每一个操作。
-
线程中断规则(Thread interruption Rule)
先调用interrupt()方法设置过中断标志位,我才能检测到中断发送
-
线程终止规则(Thread Termination Rule)
线程中的所有操作都先行发生于对此线程的终止检测。可以通过isAlive()检测线程是否已经终止
-
对象终结规则(Finalizer Rule)
一个对象的初始化构造函数完成 先行发生于它的finalize()方法的开始
发表评论: