我们可以在openmp中使用TBB concurrent_vector吗?
是否允许并发更新?
答案 0 :(得分:4)
是的,TBB的并发数据结构是线程安全的,这意味着任何线程范例,如OpenMP,TBB,Cilk,PPL等,都可以使用TBB的并发数据结构。这是因为concurrent_vector
只是一个数据结构类而不是与线程相关的控制代码。
此外,TBB的互斥体也可以在OpenMP,Cilk和PPL中使用。
答案 1 :(得分:3)
根据英特尔网站concurrent_vector page的第1.11节,增量增长,增长有限以及将新对象推送到向量上都是线程安全的操作。
该介绍还说,添加新元素不会使现有迭代器无效。
所有这些组合意味着您应该能够使用openmp安全地多线程访问concurrent_vector。