通常如果我想模擬一些工作或等待確切的時間間隔,我使用condition_variable::wait_for
或最差的thread::this_thread::sleep_for
。但是condition_variable
documentation指出wait_for
或wait_until
方法可能會阻止比請求更長的時間。如何保證確切的線程睡眠間隔?
該功能可能會阻塞更長比timeout_duration由於調度或者資源爭用延遲。
確切的等待間隔可以保證多少?
UPDATE
我能達到它沒有condition_variable
?
標準C++沒有這樣的功能。很可能,您的操作系統也不是。 –
所以你可以做的最接近的事情就是讓自己的函數爲大增量睡1秒或更大,然後輪詢等待正確的返回時間,但它會相當混亂和低效 –
@GradyPlayer:爲什麼是你選擇任意1秒?在具有較高優先級任務的繁忙系統上,它可能爲1000秒,在未使用的系統上可能沒有開銷。 – MSalters