タイトルのとおり: スレッドの可視性の問題: 1 つの CPU でのみマルチスレッドを実行する場合.if exieted 変数の可視性の問題? スレッドはキャッシュを共有し、可視性はないと思いますが、他の意見はありますか? アドバンスでありがとう。
質問する
64 次
1 に答える
2
Java メモリ モデルに注意してください。CPU アーキテクチャ (キャッシュなど) の詳細は抽象化されており、JVM によって透過的に処理されます。
Java メモリ モデル (JMM) は、マルチスレッド プログラムの許容される動作を定義します [...] 一貫性のある信頼性の高い Java アプリケーションを実現するために、スレッドとメイン メモリの関係に実行時間の制約を課します。これにより、動的コンパイラ、プロセッサ、およびキャッシュによって実行される最適化に直面しても、マルチスレッド環境でのコード実行について推論することが可能になります。
Java はクロスプラットフォームであるため、特定のシングルコア マシンの特性に依存することはできません。
関連項目: Brian Goetz による「Fixing the Java Memory Model, Part 2」 。
于 2012-06-01T05:47:46.033 に答える