4

Java-Memory-Model と呼ばれることはよくありますが、これまでは本能的に JVM エコシステム全体に適用できると考えていました。

Javaで作成されたアプリケーション間でのみ適用されますか?それとも、バイトコードJVM準拠の実行可能ファイルもその保証から恩恵を受けますか?

「メモリモデル」でJVM仕様を調べましたが、それについて多くを見つけることができませんでした。一方で、Java の仕様書には徹底的に記述されており、メモリ モデルが Java 固有のものであるという印象が残ります。

ありがとう

4

1 に答える 1

4

技術的には、Java メモリ モデルは Java のみを対象とし、Java コンストラクト (同期、揮発性、最終など) を参照します。ただし、JMM の適用は、特定のバイトコード命令を通じて JVM に委任されます。

たとえば、同期ブロックは、monitorenter / monitorexit バイトコード命令に変換されます。

そのため、JVM 互換言語は、理論的には特定のメモリ モデルを定義し (JMM に基づいて記述できる限り)、適切なバイトコードを生成できます。

@volatile実際には、Scalaや Clojureなど、いくつかの直接的な同等物がありvolatile-mutableます。

于 2013-10-26T15:49:02.767 に答える