我正在使用tbb :: concurrent_hash_map。我知道插入和删除是安全的操作。迭代哈希映射在插入和删除方面被认为是安全的。如果没有,我可以使用任何数据结构进行安全迭代。
答案 0 :(得分:1)
由于C ++和TBB中缺少内存回收支持(GC),因此无法在不显着影响性能的情况下同时保持删除和迭代安全。因此,TBB有两个用于哈希表的并发容器:
concurrent_hash_map
安全erase()
和元素级访问同步但without safe iteration。concurrent_unordered_*
(例如concurrent_unordered_map
)没有安全erase()
和元素访问同步,但具有线程安全的迭代支持。