是否存在JVM的最坏情况实现?

Ing*_*nge 9 java memory multithreading synchronization jvm

Java的内存模型清楚能做什么和不能假设有关线程通过内存是如何相互作用的.例如,如果一个线程在没有适当同步的情况下将新值写入字段,则不保证新值可由其他线程观察到.然而,在实践中,尽管写入和读取之间的时间,硬件架构等,但是同步不充分,其他线程可能无论如何都会读取新值.

这可能导致难以发现且难以复制的错误.因此,在最坏情况的JVM上运行Java应用程序可能很有用,它在Java内存模型中的保证之外的线程之间绝对没有内存同步.是否存在这种最坏情况的JVM实现?

oxb*_*kes 2

您可以尝试使用Terracotta来集群您的程序。对于不正确的同步,这是令人难以置信的无情(即使集群中只有一个节点,这种情况也会变得很明显)。这是一个很好的问题:我经常想要这种能力 - 我很惊讶标准 JRE 中没有开关-XXJMMExtreme

Terracotta 的基本产品是开源且免费的。