います。ネット辞書の実施に相当するJavaのConcurrentHashMap?
-
08-07-2019 - |
質問
をおさらいためです。純達の人が知らないのJava API:
ConcurrentHashMap Javaにおける原子の方法(必要としない外部のロック)のための共通の地図変更などの操作:
putIfAbsent(K key, V value)
remove(Object key, Object value)
replace(K key, V value)
この繰り返し処理のkeysetロック無しでコピーの開始時に繰り返し処理) get()
操作はインターリーブへの呼び出し put()
ブロックせずに(この微細ロック現象 IIRC).
とにかく、私の質問は います。当期純に相当辞書の実施?
思うように鋭い.純では、より一般セットのスレッドに対して安全に収ます。または並行処理費全般の相当 Doug ー's java.util.concurrent
図書館です。
解決
ないことを知っています。最も近いものか探ろうが、同期方法、ハッシュテーブルを返します(ソート)のスレッドセーラッパーのハッシュテーブル.このスレッドの安全のための複数の作成者または複数の読者にあります。振り返ってみると、私が正しく、混合物と読まないスレッドセーフです。
他のヒント
の着信.Net4.0は ConcurrentDictionary クラスで便利な GetOrAdd 方法。
public TValue GetOrAdd(
TKey key,
Func<TKey, TValue> valueFactory
)
非常に役立つグローバルサーバのキャッシュの
編集:このた前ます。純4の発生が明らかであ ConcurrentDictionary
.これらのイ...続きを読こちらを参考として必要とする.純3.5.
わからないのと同等の ConcurrentHashMap
.
件の並行処理費-.純ものを提供するタイミングの基礎となるJavaを利用 Mutex
, ManualResetEvent
, AutoResetEvent
や ReaderWriterLock
;そして最近では(.純2.0) Semaphore
する。純3.5) ReaderWriterLockSlim
どのグラフィック-デザイナーの広いスレッドプールのコースです。
大きな揺ップが入ってきます。NET4.0時平行な拡張が到着することは並行処理 多く より簡単になります。同様に、 調整および並行処理実行時の では最後に脱却の足をMicrosoft Robotics Studioが、私はいかがで向かになるでしょう。純そのもの又は独立図書館)
個人的に見ると個々の手法として一般的に同期などとして有用です。
一般的にするための関連"の取得"および"入れ"であれば別のスレッドが同じ値がすぐにスレッド。ものによって、シナリオん したい 誰かに読み値です。
幅広いアプローチで簡単に外部 Monitor
(lock(...)
でも多くのです。シンプルですが、軽量なければkm圏内にあります。 重 スレッド負荷に対して十分な
さらに複雑なシナリオのような ReaderWriterLockSlim
などの自由度は飛躍的に向上します。今後はタイトル文字をクリックし、変えればプロファイリングを示してある本物の競合問題です。
としてジョン-ノート、並列拡張子が全く新しいスルーレートの高性能同期機器参考になった"と投票している(例 こちらの, こちらの や こちらのこの一部である。NET4.0