15得票2回答
如何使用lock_guard和try_lock_for?

我可以使用boost::lock_guard来获取boost::mutex对象上的锁,这种机制会确保一旦boost::lock_guard超出范围,锁将被释放:{ boost::lock_guard<boost::mutex> lock(a_mutex); // Do th...

11得票4回答
使用std::mutex而不是boost::mutex时出现未处理的异常

我试图在代码中摆脱一些 boost 依赖,而是使用新的 C++11 特性(Visual Studio 2013)。 在我的一个组件中,我使用 boost::mutex 和 boost::lock_guard<boost::mutex>,一切正常。但是当我改用 std::mute...

7得票3回答
"嵌套式" scoped_lock

我简化后的课程如下: class A { public: // ... methodA(); methodB(); protected: mutable boost::mutex m_mutex; sometype* m_myVar...

7得票2回答
如何先获取独占锁,然后降级为共享锁而不释放锁

Stack Overflow有几个例子,其中一个函数首先获得了一个可升级锁,然后通过升级获得独占访问。我的理解是,如果不小心使用,这样做可能会导致死锁,因为两个线程都可能获取可升级/共享锁,然后都试图升级,在这种情况下,由于另一个线程拥有共享锁,因此两个线程都无法继续进行。 我想要的是首先获...