Javaプログラミングのアイデア - 第21章同時(B)

限られた資源の第三に、共有

  並行タスクについては、次の2つのタスクが同じリソースへのアクセスを防止するためにいくつかの方法が必要になり、少なくともこれは重要な段階で発生していません。

1.共有リソースの競合を解決します

  この競合を防ぐ方法は、リソースがそれにタスクロックを使用しているときということです。基本的にはすべてのスレッドの同時実行の競合を解決するモデル、およびプログラム・アクセス、共有リソースの配列に基づいています。通常、この文は、1つのタスクだけが一度にこのコードを実行することができます前にコードを追加することで実現したロックを、選択することです。ロック文が1種類の相互に排他的なので、フィールドをサポートするために、このメカニズムの効果を持っていたので、ミューテックス(ミューテックス)となります。

  同期、実行すべきコードがされたときに同期したときに保護されたコードブロック、ロックが利用可能であるかどうかを最初にチェックは、ロックは、ロックを解除し、実行コードブロックが得られます。メモリセグメント共有リソースは、典型的には、ファイル、I / O、プリンタなどとすることができるオブジェクトの形で存在します。共有リソースへのアクセスを制御するには、必要がパッケージオブジェクトにそれを置くために。以下のように、このリソースのメソッドへのすべての呼び出しがマークされている同期。タスクが標識のために呼び出す場合は、同期メソッドが返す前からこのスレッドではそうして、方法、としてマークされた任意のクラスへの他のすべてのコール同期方式のスレッドがブロックされています。

  自動的に単一のロックを含むすべてのオブジェクトは、オブジェクトへの同期方法のいずれかを呼び出すときに、オブジェクトがロックされ、その後、他のオブジェクトの同期、それはであるために、メソッド呼び出し、ロックを解除する前に完了するまで、唯一の方法の後に呼び出します。同時を使用しているときに、ドメインを設定することに注意してくださいプライベートが非常に重要であり、そうでない場合は、同期のキーワードは、ドメインにアクセスする直接他のタスクを防ぐことはできません。

  各クラスについて、またロックしています。したがって、同期静的メソッドは、クラスの範囲内に抑制することができる静的データへの同時アクセス。

  

  

  

おすすめ

転載: www.cnblogs.com/xcgShare/p/11770688.html