使用openmp的TBB concurrent_vector

时间:2011-10-07 04:55:27

标签: c++ openmp tbb

我们可以在openmp中使用TBB concurrent_vector吗?

是否允许并发更新?

2 个答案:

答案 0 :(得分:4)

是的,TBB的并发数据结构是线程安全的,这意味着任何线程范例,如OpenMP,TBB,Cilk,PPL等,都可以使用TBB的并发数据结构。这是因为concurrent_vector只是一个数据结构类而不是与线程相关的控制代码。

此外,TBB的互斥体也可以在OpenMP,Cilk和PPL中使用。

答案 1 :(得分:3)

根据英特尔网站concurrent_vector page的第1.11节,增量增长,增长有限以及将新对象推送到向量上都是线程安全的操作。

该介绍还说,添加新元素不会使现有迭代器无效。

所有这些组合意味着您应该能够使用openmp安全地多线程访问concurrent_vector。