-
程序次序规则。在一个线程内,书写在前面的代码先行发生于后面的。确切地说应该是,按照程序的控制流顺序,因为存在一些分支结构。
-
Volatile变量规则。对一个volatile修饰的变量,对他的写操作先行发生于读操作。
-
线程启动规则。Thread对象的start()方法先行发生于此线程的每一个动作。
-
线程终止规则。线程的所有操作都先行发生于对此线程的终止检测。
-
线程中断规则。对线程interrupt()方法的调用先行发生于被中断线程的代码所检测到的中断事件。
-
对象终止规则。一个对象的初始化完成(构造函数之行结束)先行发生于发的finilize()方法的开始。
-
传递性。A先行发生B,B先行发生C,那么,A先行发生C。
-
管程锁定规则。一个unlock操作先行发生于后面对同一个锁的lock操作。