【发布时间】:2018-12-10 18:58:55
【问题描述】:
如果我理解正确的话,从 C++11 开始,只要容器本身不作为操作的一部分进行修改,就可以安全地同时调用容器的 const 成员函数并修改容器的元素(从例如cppreference.com 中有关线程安全的表中可以看出)。由于 std::valarray 未列在(草案)标准的容器部分中,我不确定线程安全是否也适用于它。换句话说,
- 同时从 std::valarray 读取是否安全(特别是通过使用带有切片的 operator[])?
- 如果对 T 的操作是安全的,那么同时修改 std::valarray
的元素是否安全?
我想将 std::valarray 用于将使用多个线程填充的多维数字数组。
【问题讨论】:
-
std::valarray确实是容器家族中的孤儿。我怀疑很多人会使用它。 -
在这个问题的例子中,它以线程安全的方式工作,你的链接也没有打开..stackoverflow.com/q/21147991/3254405
-
我的错误,有人修复了链接。如果可能,我想使用标准库而不是 C++ AMP。
标签: c++ multithreading c++11 valarray