[英]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.