example 1: public void mySort() { int x = 11; //语句1 int y = 12; //语句2 谁先执行效果一样 x = x + 5; //语句3 y = x * x; //语句4 } 执行顺序是:1 2 3 4、2 1 3 4、1 3 2 4 指令重排也有限制不会出现:4321,语句 4 需要依赖于 y 以及 x 的申明,因为存在数据依赖,无法首先执行 example 2: int num = 0; boolean ready = false; // 线程1 执行此方法 public void actor1(I_Result r) { if(ready) { r.r1 = num + num; } else { r.r1 = 1; } } // 线程2 执行此方法 public void actor2(I_Result r) { num = 2; ready = true; } 情况一:线程 1 先执行,ready = false,结果为 r.r1 = 1 情况二:线程 2 先执行 num = 2,但还没执行 ready =...