一些讨论线程提到了Java代码的乱序执行,但他们并没有明确声称JVM会对字节码进行乱序执行。所以我想知道这是否是真的;如果是,是否有官方的技术文档可以查阅?谢谢。编辑:我知道CPU会对指令进行乱序执行,但我想知道JVM本身是否会对字节码进行乱序执行。
JVMS解释了这个主题。一般来说,JVM可以自由地对字节码进行某种重新排序,这可能会在多线程应用程序中产生意外行为。 对于单线程应用程序和每个单独的线程,重新排序不会影响行为,程序/线程的执行与源代码中期望相同。