JVM是否按顺序执行字节码?

3
一些讨论线程提到了Java代码的乱序执行,但他们并没有明确声称JVM会对字节码进行乱序执行。所以我想知道这是否是真的;如果是,是否有官方的技术文档可以查阅?
谢谢。
编辑:我知道CPU会对指令进行乱序执行,但我想知道JVM本身是否会对字节码进行乱序执行。
1个回答

5

JVMS解释了这个主题。一般来说,JVM可以自由地对字节码进行某种重新排序,这可能会在多线程应用程序中产生意外行为。

对于单线程应用程序和每个单独的线程,重新排序不会影响行为,程序/线程的执行与源代码中期望相同。


3
可能不是;你可能意思是任何重新排序都必须受到限制,以确保其对单线程计算结果没有影响。 - Chris Stratton
4
JVM技术上是不允许产生“意外行为”的。只是在多线程情况下,某些操作的连续效应是未定义的,因此实现可以随意进行一些重新排序等操作。 - mikera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接