公開:オブジェクトは、現在の範囲外のコードで参照できるようにすることです。
一般的なフォーム:オブジェクトへの参照をパブリック静的ドメインに保存する。非プライベート方法で参照を返す。参照を含む内部クラスインスタンスの公開。
エスケープ:準備ができていないときにオブジェクトを公開します。
この参照がコンストラクターから逃げさせないでください。たとえば、コンストラクターのスレッドを起動すると、スレッドにはオブジェクトへの参照が含まれます。
同期コンテナ:コンテナ、ベクトル、ハッシュテーブル、cllections.synchronizedMapのすべての状態への移動アクセスを実行します|リスト
同時コンテナ:CONCURRENTHASHMAP、COPYONWRITEARRAYLIST、CONCURRENTLINKEDQUEUE、BLOCKINGQUEUE
ランダムアクセス機能の利点をリストします。
ブロックすると、ブロック可能なGet Set操作が追加されます
concurrenthashmap:個別のロック、同時アクセスのために高いスループットをもたらし、単一のスレッドのアクセスパフォーマンスをほとんど失いません。弱く一貫したイテレーターを返します。
イテレーターの弱い一貫性は、イテレータが生成された後に容器の変化を検出します。
同時コンテナサイズ()、ISEMPTY()は弱体化し、おおよその結果を返します。
copyonwritearraylist:コンテナが変更されるたびにコピーし、反復要件は変更要件よりも大きくなります。
プロデューサーと消費者のコードを切り離すために、境界付きブロッキングキューを使用したプロデューサー消費者モデル。
エグゼキュータータスク実行フレームワークは、生産者と消費者モデルを実装します。
Synchronousqueue:消費者が利用可能になるのを待って、消費者が十分なシナリオに適しているプロデューサーが利用可能になるのを待ちます。
両端のキューは、作業盗用モードに関連付けられています。すべての消費者がプロデューサー - 消費者モードで作業キューを共有しているという事実とは異なります。作業盗むモードの各消費者には、彼自身の両端のキューがあります。消費者がすべての仕事を完了した場合、彼は他の消費者キューの終わりにタスクを盗むことができます。
作業盗みモードは、タスクの単位に実行するときに適しているため、ファイルのトラバースなど、より多くのタスクが特定される場合があります。
メソッドが中断されたエクセプトをスローできる場合、それはブロック可能な方法であることを意味します。挿入exceptionを投げたりキャッチしたりします。
シンクロナイザー:シンクロナイザー---セマフォ、バリア、ラッチ、状態をカプセル化し、この状態(パスまたはブロック)のスレッドの動作を決定し、状態を操作する方法を提供し、シンクロナイザーが目的の状態に入るために効率的に待機します。
ラッチロック:スレッドが1回限りのスイッチのようにエンド状態に到達するまで、スレッドの進行を遅らせます。他のアクティビティが完了するまで特定のアクティビティが発生しないようにするために使用できます。
例えば:
FutureTaskは、ロック、抽象的なポータブル結果計算として使用でき、Callableを通じて実装されます。 Future.getは、タスクの実行ステータスに依存します。タスクが完了すると、結果が返されます。そうでなければ、それは待っています。
エグゼキューターフレームワークは、FutureTaskを使用して非同期タスクを完了します。
Semapher Semapher:特定のリソースに同時にアクセスしたり、同時にリソースプール、コンテナ境界で特定の操作を実行できるアクティビティの数を制御するために使用されます。
バリアレベル:ロックと同様に、すべてのスレッドは、処理を継続する前に同時にレベルに到達する必要があります。ロックは時間を待ち、レベルは他のスレッドを待ち、再利用されます。レベルを通じて、待機は各スレッドの一意の到着インデックス番号を返します。これは、リーダーを選出し、次の反復でいくつかの特別なタスクを引き受けるために使用できます。
交換器はレベルの形式です。
上記はこの記事のすべての内容です。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。また、wulin.comをもっとサポートしたいと思っています!