我认为它总是被称为Java-Memory-Model,但到目前为止我本能地认为它适用于整个JVM生态系统。
它是否仅适用于Java创建的应用程序,或者是否符合JVM标准的任何字节码可执行文件?
我已经通过“内存模型”查看了JVM规范,并且找不到太多关于它的内容。另一方面,java规范彻底描述了它,让我觉得内存模型是Java特定的。
由于
答案 0 :(得分:4)
从技术上讲,Java内存模型仅针对Java,并且是指Java构造(synchronized,volatile,final ...)。但是JMM的强制执行是通过特定的字节码指令委托给JVM的。
例如,synchronized块转换为monitorenter / monitorexit字节码指令。
因此,任何JVM兼容语言理论上都可以定义特定的内存模型(只要它可以基于JMM进行描述)并生成适当的字节码。
在实践中,有一些直接的等价,例如Scala的@volatile
或Clojure的volatile-mutable
。