这是一套定义了两个操作之间的偏序关系的规则,如果操作满足以下原则就可以说他们天生就具有线程安全的特性,否则可能需要做特定的处理:
    ① 在一个线程内,书写在前面的操作一定先发生于后面的操作(不包括分支循环等);
    ② 对于同一个锁,前一个线程的unlock操作一定先行发生于后一个线程的lock操作;
    ③ 对于同一个volatile变量,前面的写操作一定先行发生于后面的读操作;
    ④ 线程的start方法先行发生于这个线程内的代码操作;
    ⑤ 线程的操作一定先行发生于对于线程的终止检测;
    ⑥ 对线程发出interrupt的操作一定先行发生于线程检测到中断事件的操作;
    ⑦ 对象的初始化的完成一定先行发生于其finalize方法的开始;
    ⑧ 如果A先行发生于B,B先行发生于C,那么可以说A先行发生于C;
    虽然这些都是正确的废话。。。。。