Java 内存模型是仅 Java 范围还是实际上是 JVM 范围的内存模型



我看到它总是被称为Java-Memory-Model,但到目前为止,我本能地认为它适用于整个JVM生态系统。

它是否仅适用于 Java 创建的应用程序,或者任何符合字节码 JVM 的可执行文件是否也享有其保证?

我通过"内存模型"查找了 JVM 规范,但找不到太多关于它的信息。另一方面,java规范对它进行了彻底的描述,给我留下的印象是内存模型是特定于Java的。

谢谢

从技术上讲,Java内存模型仅针对Java,并引用Java结构(同步,易失,最终...)。但是JMM的执行是通过特定的字节码指令委托给JVM。

例如,同步块转换为监视器输入/监视器退出字节码指令。

因此,理论上任何JVM兼容语言都可以定义特定的内存模型(只要可以基于JMM进行描述)并生成适当的字节码。

在实践中,有一些直接等价物,例如Scala的@volatile或Clojure的volatile-mutable

最新更新