TBB concurrent_vector with openmp



我们可以使用TBB concurrent_vector与openmp吗?

允许并发更新吗?

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

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

根据Intel网站上concurrent_vector页面的1.11节,增量增长、有限增长和将新对象压入都是线程安全的操作。

还指出,添加新元素不会使现有迭代器失效。

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

最新更新