线程安全 TBB::concurrent_hash_map 擦除

Thread-safe TBB::concurrent_hash_map erase

我正在寻找线程安全映射的解决方案,但包括待定所有内容库都不是线程安全的,无法擦除,清除 functions.I 由于性能原因不想使用互斥体 issues.I我在互联网上搜索了很长时间,但我仍然找不到任何关于这个的例子,而且我的英语也很糟糕 articles.I 搜索了很多东西,比如 const 对于 c++11 是线程安全的但我想不通。

我试过这个来复制地图,但它也不是线程安全的。

 __forceinline ActiveMap & GetActiveMap() { return m_activeCollection; }

当我尝试在另一个线程中复制地图时,此代码崩溃。

(由于 __forceinline 关键字,我猜你正在使用 Visual C++)

  1. Visual studio 2013(我猜 Visual studio 2015)带有一小组并发数据结构。 header <concurrent_unordered_map.h> 实现了您可以使用的并发映射。

  2. 尝试使用锁分析您的应用程序。 Slim reader writer lock 通常还不错,可能就足够了。