我正在尋找線程安全映射的解決方案,但包括tbb所有內容庫都不是線程安全的用於擦除,清除函數。我不想因爲性能問題使用互斥鎖。我在互聯網上搜索了很長時間,但我仍然無法找到任何有關這方面的例子,而且我對長文章也有不好的看法。我搜索了很多東西,例如const,對於C++ 11來說是線程安全的但我無法弄清楚。線程安全的TBB :: concurrent_hash_map擦除
我試圖複製地圖,但它也不是線程安全的。
__forceinline ActiveMap & GetActiveMap() { return m_activeCollection; }
此代碼崩潰時,我試圖複製地圖,而另一個線程在它。
你錯了,'tbb :: concurrent_hash_map :: erase'是線程安全的 – Anton
整個容器操作如賦值或拷貝不是線程安全的。您可以使用'tbb :: spin_rw_lock'爲了保護它以便拍攝快照 – Anton