我看到它总是被称为Java-Memory-Model,但到目前为止,我本能地认为它适用于整个JVM生态系统。
它是否仅适用于 Java 创建的应用程序,或者任何符合字节码 JVM 的可执行文件是否也享有其保证?
我通过"内存模型"查找了 JVM 规范,但找不到太多关于它的信息。另一方面,java规范对它进行了彻底的描述,给我留下的印象是内存模型是特定于Java的。
谢谢
从技术上讲,Java内存模型仅针对Java,并引用Java结构(同步,易失,最终...)。但是JMM的执行是通过特定的字节码指令委托给JVM。
例如,同步块转换为监视器输入/监视器退出字节码指令。
因此,理论上任何JVM兼容语言都可以定义特定的内存模型(只要可以基于JMM进行描述)并生成适当的字节码。
在实践中,有一些直接等价物,例如Scala的@volatile
或Clojure的volatile-mutable
。