Java memory model明确了关于线程如何通过内存进行交互的可以假设和不可以假设的内容。例如,如果一个线程在没有适当同步的情况下将新值写入字段,则不能保证其他线程可以观察到新值。然而,在实践中,尽管同步不充分,其他线程仍可能读取新值,具体取决于写入和读取之间的时间、硬件架构等。
这可能会导致难以发现且难以重现的错误。因此,在最坏情况下的 JVM 上运行 Java 应用程序可能很有用,该 JVM 绝对没有线程之间的内存同步,超出 Java memory model 中的保证。 .这种最坏情况的JVM实现是否存在?
最佳答案
您可以尝试使用 Terracotta集群你的程序。不正确的同步是令人难以置信的无情(即使集群中只有一个节点也会变得很明显)。这是一个好的问题:我经常想要这种能力 - 我很惊讶标准 JRE -XXJMMExtreme
Terracotta 是开源的,基本产品免费。
关于java - JVM 是否有最坏的情况实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554339/