2011-06-28 4 views
1

3つのスレッドがあります。それぞれは独自の辞書キーのセットで作業(読み込み、書き込み)します。したがって、キーは異なるスレッドに対して相互に排他的です。データだけを読み込む複数のスレッドもあります。速度の点でより効率的であるこれら2つのアプローチの同時並行キーおよび不連続キーセット

  1. (タイプConcurrentDictionaryの)単一の辞書を作成
  2. それら3つのスレッドのそれぞれについて(タイプConcurrentDictionaryの)別個の辞書を作成します。

一見すると、第2のアプローチは、ライターの競合がないため、より効率的です。ここに落とし穴がありますか? 2つのアプローチの違いが重要でない場合、私は第1のアプローチに行きます。

+2

データを読み取る他のスレッドは何をする必要がありますか?あなたは両方を試して差を測定しましたか?あなたはすでに具体的なパフォーマンス目標を持っていますか? –

+0

他のスレッドは、値を読み取る辞書を反復処理します。私はどちらもまだ試していない。単一の 'ConcurrentDictionary'ディクショナリで作業するときに、スレッドごとに異なるキーセットを持つメリットがあるかどうかを知りたいだけです。明らかに、辞書全体がロックされている場合は、それに書き込むときに利点はありません。 AFAIK 'ConcurrentDictionary'はこのように動作しません。 –

答えて

0

第2のアプローチがより効率的です。どのような場合でも、共有状態にすることは良い考えではありません。

関連する問題