我曾多次编写一些代码,这些代码可以从"反向"lock_guard中受益,就像在这个简短的例子中一样.
std::lock_guard<std::mutex> lg(_eventQueueMutex);
while (!_eventQueue.empty())
{
Event e = _eventQueue.top();
_eventQueue.pop();
_eventQueueMutex.unlock(); // Manual unlock
dispatchEvent(e);
_eventQueueMutex.lock(); // Manual lock
}
Run Code Online (Sandbox Code Playgroud)
有没有办法用C++ 11中的自动lock_guard替换内部解锁/锁定?