1
3つのスレッドがあります。それぞれは独自の辞書キーのセットで作業(読み込み、書き込み)します。したがって、キーは異なるスレッドに対して相互に排他的です。データだけを読み込む複数のスレッドもあります。速度の点でより効率的であるこれら2つのアプローチの同時並行キーおよび不連続キーセット
:
- (タイプConcurrentDictionaryの)単一の辞書を作成
- それら3つのスレッドのそれぞれについて(タイプConcurrentDictionaryの)別個の辞書を作成します。
一見すると、第2のアプローチは、ライターの競合がないため、より効率的です。ここに落とし穴がありますか? 2つのアプローチの違いが重要でない場合、私は第1のアプローチに行きます。
データを読み取る他のスレッドは何をする必要がありますか?あなたは両方を試して差を測定しましたか?あなたはすでに具体的なパフォーマンス目標を持っていますか? –
他のスレッドは、値を読み取る辞書を反復処理します。私はどちらもまだ試していない。単一の 'ConcurrentDictionary'ディクショナリで作業するときに、スレッドごとに異なるキーセットを持つメリットがあるかどうかを知りたいだけです。明らかに、辞書全体がロックされている場合は、それに書き込むときに利点はありません。 AFAIK 'ConcurrentDictionary'はこのように動作しません。 –