私は次のようにのOpenMPを使用したい対象のいくつかのコードを持っている:のOpenMPおよびSTLベクトル
std::vector<int> v(1000);
# pragma omp parallel for
for (int i = 0; i < 1000; ++i) {
v[i] = i;
}
私はSTLのベクトルコンテナはどこな状況ではスレッドセーフではないことを読んだことがあります複数のスレッドが単一のコンテナに書き込むと、書き込みを行う前にベクトルをロックする必要があることを意味します。しかし、私はまた、上記の書き込み操作は何らかの形で「アトミック」であると言われているので、上記の競合条件はありません。誰かがこれを明確にすることができますか?
複数の読み取り、書き込みを許可するconcurrent_vectorを確認してください – user