[英]How works std::condition_variable::wait_until
为什么这段代码运行得非常快?
int main() {
std::condition_variable cv;
std::mutex mtx;
std::unique_lock<std::mutex> lock(mtx);
cv.wait_until(lock, std::chrono::system_clock::now() + 10000ms);
return 0;
}
似乎 wait_until 被忽略
你可能会得到一个虚假的唤醒。 尝试使用接受谓词的重载...
#include <condition_variable>
int main() {
std::condition_variable cv;
std::mutex mtx;
std::unique_lock<std::mutex> lock(mtx);
cv.wait_until(lock, std::chrono::system_clock::now() + 10000ms, []{ return false; });
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.