java - JVM 是否有最坏的情况实现?

标签 java multithreading memory synchronization jvm

Java memory model明确了关于线程如何通过内存进行交互的可以假设和不可以假设的内容。例如,如果一个线程在没有适当同步的情况下将新值写入字段,则不能保证其他线程可以观察到新值。然而,在实践中,尽管同步不充分,其他线程仍可能读取新值,具体取决于写入和读取之间的时间、硬件架构等。

这可能会导致难以发现且难以重现的错误。因此,在最坏情况下的 JVM 上运行 Java 应用程序可能很有用,该 JVM 绝对没有线程之间的内存同步,超出 Java memory model 中的保证。 .这种最坏情况的JVM实现是否存在?

最佳答案

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

中没有开关

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

关于java - JVM 是否有最坏的情况实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554339/

相关文章:

java - StreamingFileSink 未将数据提取到 s3

java - 将 X509 公钥转换为 RSA 公钥

java - 了解多线程

java - java中多线程如何获取和释放同步方法和同步块(synchronized block)中的锁?

在 C 中复制对数组的引用

c++ - 如何获取 3D 数组的维度?

java - 如何在 Jackson Mapper 的帮助下使用单个 JSON 文件创建多种类型的 Java 对象?

java - 如何获取 Spring 4.1 使用的 Jackson ObjectMapper?

linux - Linux 内核如何决定使用哪个内存区域?

c - 打印内存时出现段错误