二 :细节规则
一:总体思想
1 在逻辑上 的发生 一定是顺序的比如 对于一个变量 是先赋值 然后再去读
2 再不用考虑逻辑性 的前提下 指令重排 提高性能是被允许的
二 :细节规则
1 次序规则
次序规则就是我们所说的 逻辑上的规则 确立父子关系 一个赋值 一个取值 赋值一定要再取值 之前 发生
2 锁定规则
意思 一个线程先要得到资源 lock 首先要有人释放资源 unlock 要先发生 (除非是第一个执行)
3 volatile规则
volatile 可见性原则 就是 读操作一定要在写操作之后
4 传递规则
就是 A -》 B B-》C 那么A 一定先于C 先发生
5 线程启动规则
线程的启动 是由操作系统决定的 所以再线程启动的时候一定要先执行 start()方法 就绪状态了
6 线程中断规则
线程中断 interrupt 其中用于检测 是否 用于中断的isInterrupted 方法一定要在 interrupt 线程 中断标识 启动之后
7 线程终止规则
线程所有的操作都要再线程终止之前 结束 可以通过 join 或者 isAlive 检测是否存活 这个 很好理解
8 对象终止规则
就是 对象不能再 初始化之前 使用 finalized 方法 这个也好理解 就是 一个对象 终结 不能超前于 初始化 通俗意思就是 对象还没出生 不能调用结束方法