我可以使用队列来改善std :: map的并发性能吗?

时间:2016-08-19 14:24:08

标签: c++ multithreading c++11 boost lock-free

假设我有一个std :: map,它由多个线程同时写入。看起来有no lock-free map in C++或者还有提升。

我想在我的地图之前添加boost::lockfree::queue。一个线程将读取此队列并写入映射,那些写入映射的线程现在写入队列:

[std::map] <- (lockfree::queue) <= threads

现在似乎整个结构都是无锁的,但它至少需要一个条件变量和一个互斥锁,这样当队列不为空时,线程会得到通知并从队列中获取数据。

在写入地图时,它比仅仅使用std::lock_guard有更好的表现吗?

0 个答案:

没有答案
相关问题