std :: condition_variable :: wait()退出后的锁状态是什么

时间:2015-02-07 10:49:04

标签: c++ multithreading

我有以下代码:

std::unique_lock<std::mutex> myLock( myMutex );
std:condition_variable queueWriterCondition;
queueWriterCondition.wait( myLock );

之后

std::unique_lock<std::mutex> myLock( myMutex );

myMutex已被锁定。在调用wait()之后,锁定被释放并且当前线程被阻止。

现在我的线程得到通知并且wait()存在。

根据reference&#34;解除阻止后,无论原因如何,锁定重新获取并等待退出。&#34;

如果我理解正确,当超出范围时,unique_lock不会自动解锁。在这种情况下,永远不会放弃锁定。

根据我的经验,似乎在wait()退出后没有锁定互斥锁。

谁错了。我还是参考?

0 个答案:

没有答案