我想弄清楚这段代码行的作用。当计数小于6时,它会暂停或等待或运行代码吗?
unique_lock<mutex> lck(mtx);
cv.wait(lck, [this]() { return count <6; });
答案 0 :(得分:0)
它会等待直到 cv
被通知count < 6
。来自reference:
相当于
while (!pred()) { wait(lock); }
此异常可用于在等待特定条件变为真时忽略虚假唤醒。请注意,在输入此方法之前,必须获取锁定,在
wait(lock)
退出后,它也会被重新获取,即锁定可用作pred()
访问的保护。
您可以将谓词视为停止等待的终止条件。