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 是从哪里来的?如果它来自微软的并发库,只需使用 concurrent_vector。

于 2013-01-05T17:11:45.887 回答