小编bre*_*red的帖子

如何在C ++中单独锁定unordered_map元素

我有一个unordered_map我希望可以被多个线程访问的方法,但是用互斥锁锁定整个过程太慢了。

为了解决这个问题,我在的每个元素中放置了一个互斥锁unordered_map

class exampleClass{
    std::mutex m;
    int data;
};

std::unordered_map<int,exampleClass> exampleMap;
Run Code Online (Sandbox Code Playgroud)

问题是我无法安全地擦除元素,因为要破坏互斥锁必须将其解锁,但是如果解锁,则另一个线程可以将其锁定并在破坏期间写入或读取该元素。

c++ multithreading mutex unordered-map

2
推荐指数
1
解决办法
153
查看次数

标签 统计

c++ ×1

multithreading ×1

mutex ×1

unordered-map ×1