1

重複の可能性:
STL ベクトルとスレッドセーフ

このコードがある場合:

std::vector<std::vector<double>> a;
std::vector<double> b;

// init a,b....

std::vector<double> c;
parallel_for_each (a.begin(); a.end; [&c, &b] (std::vector<double>& aux) {
   c.push_back(foo(b, aux));
});

そのような要素をベクターに追加するのはスレッドセーフですか?

4

2 に答える 2

5

いいえ、std::vectorスレッドセーフではありません。同期を提供する必要があります。

于 2013-01-05T17:08:44.113 に答える
3

そのparallel_for_eachはどこから来ていますか?Microsoftの同時実行ライブラリからのものである場合は、concurrent_vectorを使用してください。

于 2013-01-05T17:11:45.887 に答える