-1

タイトルのとおり: スレッドの可視性の問題: 1 つの CPU でのみマルチスレッドを実行する場合.if exieted 変数の可視性の問題? スレッドはキャッシュを共有し、可視性はないと思いますが、他の意見はありますか? アドバンスでありがとう。

4

1 に答える 1

2

Java メモリ モデルに注意してください。CPU アーキテクチャ (キャッシュなど) の詳細は抽象化されており、JVM によって透過的に処理されます。

Java メモリ モデル (JMM) は、マルチスレッド プログラムの許容される動作を定義します [...] 一貫性のある信頼性の高い Java アプリケーションを実現するために、スレッドとメイン メモリの関係に実行時間の制約を課します。これにより、動的コンパイラ、プロセッサ、およびキャッシュによって実行される最適化に直面しても、マルチスレッド環境でのコード実行について推論することが可能になります。

Java はクロスプラットフォームであるため、特定のシングルコア マシンの特性に依存することはできません。

関連項目: Brian Goetz による「Fixing the Java Memory Model, Part 2」 。

于 2012-06-01T05:47:46.033 に答える