Zha*_*ang 6 c++ multithreading c++11
在等待时间的情况下:
我们的软件在后台运行,并且每20-30分钟与服务器同步数据一次。
我想用
std::this_thread::sleep_for
Run Code Online (Sandbox Code Playgroud)
但是我的上司强烈反对任何形式的睡眠功能。他建议
std::condition_variable::wait_until(lock, timeout-time, pred)
Run Code Online (Sandbox Code Playgroud)
我想知道在这种情况下sleep_for是否有任何不利之处?
正如评论中已经指出的,这仅取决于您的用例。两者之间的主要区别是,如果触发它,condition_variable 可以更早醒来。您还可以添加一个必须满足才能真正醒来的谓词,但这只是生活质量的补充。顺便说一句,相当于sleep_foriswait_for和 not wait_until。condition_variable也非常适合在多个线程之间进行通信或同步。
鉴于您所说的一切,我会condition_variable出于以下原因使用: