C ++条件变量并等待

时间:2015-04-23 11:25:56

标签: c++ multithreading c++11 condition-variable

我想弄清楚这段代码行的作用。当计数小于6时,它会暂停或等待或运行代码吗?

unique_lock<mutex> lck(mtx);
 cv.wait(lck, [this]() { return count <6; });

1 个答案:

答案 0 :(得分:0)

它会等待直到 cv被通知count < 6。来自reference

  

相当于

while (!pred()) {
    wait(lock);
}
     

此异常可用于在等待特定条件变为真时忽略虚假唤醒。请注意,在输入此方法之前,必须获取锁定,在wait(lock)退出后,它也会被重新获取,即锁定可用作pred()访问的保护。

您可以将谓词视为停止等待的终止条件。