この記事では、Javaでの使用と同時使用を詳細に分析します。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
1.同期容器には、ベクトルとハッシュテーブルの2つの部分が含まれています
もう1つは、コレクションによって作成された同期パッケージクラスです。同期コンテナは、糸の安全を実現するために、コンテナのすべての状態にインタビューします。
彼らは次の問題を抱えています:
a)操作には、追加のロック保護が必要です。たとえば、追加などの繰り返しの条件がありません。
b)トストリング、ハッシュコード、Equalsは間接的に反復的に呼び出され、並行性に注意を払う必要があります。
2。java5.0の同時コンテナ。
concurrenthashmapは、同期マップの実装を置き換えることができます。
主に読み取られる場合、CopyOnWritearRayListはリストの同期実装です。
同時に、キューとブロッキングキュー:concurentlinkedqueue:fifo queue。
PriorityQueue:非合併優先キュー。
ブロッキングキューは、ブロッキングとブロッキングの獲得を増加させました。
a)Concurenthashmap:それはパブリックロックではなく、別のロックです。任意の数の読み取りスレッドに同時にアクセスでき、読者と作家も同時にマップにアクセスすることができ、限られた数のライティングも同時にマップを変更することができます。ただし、サイズとisempty言語は弱くなり、推定されています。
b)CopyOnWritearRayList:Iteratorは、ボトムレイヤーベースアレイリファレンスを保持し、参照は変更されません。
3。シンクロナイザー
a)CountDownLatch。コンストラクターパラメーターはnであり、カウントダウン後、nは0であり、すべてがスレッドが実行され続けます。
b)FutureTask:Runnableを計算します。Runnableは、Callableで実装でき、結果を運ぶことができます。含む:待機、実行、完了。
c)セマフォ:同時にアクセスできるアクティビティの数
d)cyclicbarrier:閉鎖に似ています。ロックはインシデントを待っており、レベルは他のスレッドを待っています。初期n、実行可能なr、nスレッドはnスレッドが実行されてレベルに到達すると、r実行、レベルがリセットされ、nスレッドが続きます。
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。