【问题标题】:Safety of concurrent_vectorconcurrent_vector 的安全性
【发布时间】:2012-03-19 21:06:56
【问题描述】:


众所周知,运算符 [] 不能同时安全地写入: concurrent_vector::operator[] Operator 但是,如果我保证不同的线程将写入不同的向量位置怎么办。 像这样(非常简化的例子):

concurrent_vector<double> vec;
vec.resize(100);

parallel_for(0, 100, [&] (double ind)
{
    vec[ind] = ind*ind;
}

它是否同时安全?如果“不”,那为什么?

谢谢

【问题讨论】:

  • 即使使用普通的旧 std::vector&lt;&gt; 也是安全的。您遇到什么问题提示这个问题?

标签: c++ concurrency ppl


【解决方案1】:

是的,它是并发安全的,就像您访问不同的变量一样。

正如 ildjam 在评论中指出的那样,即使使用常规 std::vector 或者让我补充一下,使用简单数组也是安全的。

【讨论】:

  • 谢谢你们,伙计们。
    我只是想检查一下我是否理解正确。
猜你喜欢
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 2013-09-27
相关资源
最近更新 更多