线程安全 TBB::concurrent_hash_map擦除



我正在寻找线程安全映射的解决方案,但包括 tbb 所有内容库都不是线程安全的擦除、清除函数。由于性能问题,我不想使用互斥体。我在互联网上搜索了很长时间,但仍然找不到任何关于此的例子,而且我的长篇文章英语也很差。我搜索了很多东西,比如 const 对于 c++11 是线程安全的,但我无法弄清楚。

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

 __forceinline ActiveMap & GetActiveMap() { return m_activeCollection; }

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

(我猜你正在使用Visual c ++,因为__forceinline关键字')

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

  2. 尝试使用锁分析您的应用程序。纤薄的阅读器写入器锁通常不会那么糟糕,可能就足够了。

最新更新