不对称互斥的概念

时间:2016-04-01 17:19:50

标签: c++ mutex

有一个名为" MThread"和20个线程称为" HThread_01" ..." HThread_20"。我正在寻找类似于具有以下属性的互斥锁的东西:

如果从" MThread"调用m.lock() 20" HThreads"将被阻止。

如果从20" HThreads"中的一个调用m.lock()只有" MThread"将被阻止,而不是其他" HThreads"。

C ++中是否有一个轻量级的概念(不是boost)可以实现这一点?非常感谢你。

1 个答案:

答案 0 :(得分:4)

似乎std::shared_mutex符合您的使用案例。 shared_mutex提供独占锁定和共享锁定。

tools >  Extensions and Updates > Updates

在MThread中,您将使用std::shared_mutex mut; 获得独占访问

在MThread_01 ... MThread_20中,您将使用mut.lock()获取共享访问权限。