2012-02-15 11 views
1

可能な重複のマルチスレッド・充填:
Are C# arrays thread safe?C位、多次元アレイ

Iは基本的に計算された大量のデータを入れた瞬間に、シングルスレッド化されたプログラムを、有します多次元配列(double [、]; string [、]など)。

この配列のセグメントを別のスレッドに割り当てることはできますか?より正確には、指定された座標に1つのスレッドのみが書き込まれることを確認した場合、ロック機構がトリガーされますか?

答えて

2

私は一つだけのスレッドが次にあなたが安全である

を座標指定された時に書き込まれますことを確認します。あなたは今、あなたはおそらく、単純に並行性の問題に関してはParallel.For(0, n, method)

3

に切り替えることができますforループを使用している場合は、その他の配列のサイズを変更していない

と仮定すると、あなたがいる限り、あなたのスレッドがないとして罰金になります同時に配列の同じ部分を読み書きすることができます。ただし、「False Sharing」というハザードのためにスローダウンが発生する可能性があります。そのため、スレッド数が増えると予期せぬスローダウンが発生する可能性があります。