我正在寻找一个并发缓存结构。我正在使用微软的PPL,所以我有concurrent_unordered_map
类,但它似乎不是我所需要的。我有一个哈希值,我需要将它与一个指针类型相关联,或者如果它已经在缓存中,就返回那个指针。我不使用LRU或MRU缓存策略,值永远不会被删除,所以它更像是并发记忆。
直接锁定现有的std::unordered_map
会更简单吗?
我不知道微软的PPL。我只是看了英特尔线程构建块头文件为英特尔的concurrent_unordered_map和它的insert
函数返回false
作为返回对的第二部分时,键已经在映射。
这似乎正是你所需要的。执行插入,如果它返回true
,那么它是一个新的插入。如果它返回false
,那么它已经在映射中了。