在java中,指令重排序是一种优化技术,它可以重新排列代码执行的顺序以提高性能。然而,有人认为这个技术不适用于单线程环境。
对此,我们提出一个问题:
java单线程中指令重排序是否可能导致代码重新排序,从而导致不同的执行结果?
回答:
立即学习“Java免费学习笔记(深入)”;
指令重排序不会影响单线程代码的执行结果。在单线程中,jvm严格按照代码顺序执行指令。因此,代码中顺序执行的语句不会被重新排列。
举个例子,以下代码片段在单线程中执行,不会被重新排列:
System.out.println("1"); System.out.println("2");
因此,它将始终按顺序打印”1″和”2″。