在向量中编写线程安全

时间:2013-01-05 17:06:00

标签: c++ multithreading stl vector c++11

  

可能重复:
  STL vector and thread-safety

如果我有这段代码:

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));
});

在向量中添加类似的元素是否可以线程安全?

2 个答案:

答案 0 :(得分:5)

不,std::vector不是线程安全的。您必须提供同步。

答案 1 :(得分:3)

parallel_for_each来自哪里?如果它来自Microsoft的并发库,只需使用concurrent_vector。