C++11 锁定互斥体,但不';Don’不要等待它被解锁

C++11 锁定互斥体,但不';Don’不要等待它被解锁,c++11,concurrency,thread-safety,mutex,boost-mutex,C++11,Concurrency,Thread Safety,Mutex,Boost Mutex,如何锁定std::mutex或boost::mutex,因此在我的方法开始时,我会锁定它,但不管它是否已被锁定,也不管它是否继续执行代码 我想要这种行为,因为将有两个线程在std::map上读写。当它读取时,我只想锁定互斥锁,以便它可以继续读取,但写入停止。当它写入时,我希望它锁定另一个互斥锁,这将阻止读取和写入,并等待两个互斥锁被解锁,以便它可以单独使用映射。听起来更像是共享互斥锁的作业。,tbh。@Xeo确实如此。如果你愿意,你可以把它作为一个答案,我会批准的。如果没有,我就把它挂起来。使用

如何锁定
std::mutex
boost::mutex
,因此在我的方法开始时,我会锁定它,但不管它是否已被锁定,也不管它是否继续执行代码


我想要这种行为,因为将有两个线程在
std::map
上读写。当它读取时,我只想锁定互斥锁,以便它可以继续读取,但写入停止。当它写入时,我希望它锁定另一个互斥锁,这将阻止读取和写入,并等待两个互斥锁被解锁,以便它可以单独使用映射。

听起来更像是共享互斥锁的作业。,tbh。@Xeo确实如此。如果你愿意,你可以把它作为一个答案,我会批准的。如果没有,我就把它挂起来。使用boost:shared_互斥锁(readers-writer-lock)。C++14将实现std::shared mutex()