Javaのメモリモデル。

 

Javaのメモリモデル:

レディ知識:キャッシュ、キャッシュ・コヒーレンシ、ハードウェアバッファ:バッファ無効化キューを作成し、メモリを並べ替え、メモリバリア。

  1、Javaのメモリモデルのコンセプト。

    まず、共有変数へのプロセッサの更新が他のプロセッサで読み取ることができる場合、またはどのような状況の下で、あなたが問題を見ることができます:まず、コンカレントコンピュータシステムの場合には二つの問題を解決しなければなりません。第二のケースでは、プロセッサは、複数の共有変数、すなわち問題を注文、これらの更新を読み取る順序に基づいて他のプロセッサを更新しなければなりません。モデルはこの2つの問題を解決するために使用され、それはメモリモデルと呼ばれています。異なるプロセッサやオペレーティングシステムとは、この差を遮蔽するために、クロスプラットフォームの言語のような異なるメモリモデル、Java(登録商標)を有しており、並行性、視認性、順序の問題に不可分のために、独自の定義しますメモリモデルは、このモデルは、Javaメモリモデルと呼ばれています。

    Javaのメモリモデルは、各スレッドも、スレッド変数が使用するメインメモリのメモリスレッドの保存されたコピーを作業、変数スレッドを独自のワーキングメモリを持っている、すべての変数は、メインメモリに格納されている指定しますすべての操作は、ワーキングメモリで行われます。

揮発性、同期され、最終的。

  1、揮発性:変数が変更されたときに揮発性、それは2つの特性を有することになります。まず:可視性、スレッドが変数に変更されていることを、他のスレッドがすぐにわかります。仕組み:volatile変数が操作を書くとき、データはすぐにメモリに書き戻さ修正される、ワーキングメモリおよびその他のデータは無効スレッドで、他のスレッドはそう、使用中にメインメモリからデータを取得します結果の値は最新のものです。第二:コマンドの並べ替えを無効にします。仕組み:volatile変数の操作がロックの先頭に命令を実行するために、よりになる場合は、コマンドの並べ替えを無効にするには、メモリバリアとして機能します。

おすすめ

転載: www.cnblogs.com/zhangyuhao/p/11767066.html