4

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

是否允许并发更新?

4

2 回答 2

5

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

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

于 2011-10-07T06:26:59.767 回答
4

根据 Intel 站点上concurrent_vector 页面的第 1.11 节,增量增长、有限增长以及新对象推送到向量上都是线程安全的操作。

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

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

于 2011-10-07T05:57:11.507 回答