私はstd::vector<int>
の長さが4であり、一定であるとします。次に、スレッドi
はインデックスi
だけを読み書きする4つのスレッドがあります。これはスレッドセーフですか?単一の要素を互いに独立して変更することはできますか?私は彼らがおそらく一度にキャッシュラインにロードされるように、彼らが近くにいるので不思議です。スレッドが独立したインデックス範囲を読み書きする場合、std :: vector threadsafeは安全ですか?
スレッドごとのインデックス範囲が1より大きい場合は違いがありますか?
編集:
私はVisual Studio 2010、したがってC++ 03を使用しています。 C++ 03からC++ 11までの違いに関するヒントは大歓迎です!
実際には、ご使用のプラットフォームとコンパイラでは、これが機能します。 C++ 11は*保証されています*動作します。 –
これはうまくいくはずですが、誤った共有のために小さな範囲では不十分かもしれません。 –