![](/img/trans.png)
[英]What is the difference between std::condition_variable::wait_for and std::condition_variable::wait_until?
[英]Does std::condition_variable::wait_until have any advantage against std::this_thread::sleep_for?
在等待时间的情况下:
我们的软件在后台运行,并且每隔20-30分钟与服务器同步数据。
我想用
std::this_thread::sleep_for
但我的上司强烈反对任何形式的睡眠功能。 他建议
std::condition_variable::wait_until(lock, timeout-time, pred)
我想知道在这种情况下sleep_for是否有任何不利之处?
正如评论中已经指出的那样,它仅取决于您的用例。 两者之间的主要区别在于,如果触发它, condition_variable
可以提前唤醒。 您还可以添加一个必须满足的谓词才能实际唤醒,但这只是一种生活品质的补充。 顺便说一下, sleep_for
的等价物是wait_for
而不是wait_until
。 condition_variable
也很适合在多个线程之间进行通信或同步。
鉴于你所说的一切,我会使用condition_variable
,原因如下:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.