初识指令重排序,Java 中的锁
初识指令重排序,Java 中的锁 指令重排序Java语言规范JVM线程内部维持顺序化语义,即只要程序的最终结果与它顺序化情况的结果相等,那么指令的执行顺序可以与代码逻辑顺序不一致,这个过程就叫做指令的重排序。 指令重排序的意义:使指令更加符合CPU的执行特性,最大限度的发挥机器的性能,提高程序的执行效率。看个demo public static void main(String[] args) throws InterruptedException { int j=0; int k=0; j++; System.out.println(k); System.out.println(j); } 上面这段代码可能会被重排序:如下 public static void main(String[] args) throws InterruptedException { int k=0; System.out.println(k); int j=0; j++; System.out.println(j); } 此时指令的执行顺序可以与代码逻辑顺序不一致,但不影响程序的最终结果. 再看个demo...
