1.概要
1.1は、Java言語仕様では定義 維持するJVMを 意味の類似順雌ねじを(長い手順の最終結果は厳密シーケンシャル環境におけるその実行の結果と同等である限り)。
2、プラットフォームストレージモデル
2.1 、現代のプロセッサ、コンパイラは 手段を使い果たし、あなたのプログラムのうち、パフォーマンスを圧迫します。
2.2、 利用可能な共有メモリマルチプロセッサシステムアーキテクチャ、各プロセッサは、それ自身のキャッシュを持っており、定期的に メインメモリコヒーレンスを有します。
2.3、改善された性能と引き換えに犠牲の一貫性を確保するために、プロセッサ・メモリ、
また、調整を確実にするために、余分なストレージを必要な共有データのための特別な命令(ストアレベル、フェンス)を規定します。
2.4は、するJava開発者を支援するために、 アーキテクチャ全体でこれらのストレージ・モデルとの違いを保護し、Javaは、独自のメモリモデルを提供します。
JVMが配置されます 挿入管のメモリーカードをするために、 プラットフォーム、基礎となるストレージ・モデルJMMの違いを解決します。
3、並べ替え
3.1は、遅延や誤動作を引き起こす可能性が異なる様々な理由は、集合的に呼ばれる、実行される。並べ替え、
4、Javaのメモリモデルの概要
4.1、Javaメモリー・モデルの定義 による 操作の形態を 説明します。
アクション:変数を書き、モニターロックとロックを解除、スレッド開始およびスプライス。
4.2、JMM 全内部プログラムの動作には、 定義半順序(事前発生します)。
変数が複数のスレッドを読み取った場合ならば、少なくとも一つのスレッドは、書き込まれる 書き込み動作が 応じない起こる、前選別、意志のデータの競合が発生します。
プログラムの正しい同期は ありません 何のデータレース プログラム。