無條件 (1) | template <class Clock, class Duration> cv_status wait_until (unique_lock<mutex>& lck, const chrono::time_point<Clock,Duration>& abs_time); |
---|---|
謂詞 (2) | template <class Clock, class Duration, class Predicate> bool wait_until (unique_lock<mutex>& lck, const chrono::time_point<Clock,Duration>& abs_time, Predicate pred); |
lck.unlock()
,允許其他已鎖定的執行緒繼續執行。lck.lock()
,使 lck 保持在呼叫函式時的狀態。然後函式返回(請注意,此最後的互斥量鎖定可能會在返回前再次阻塞該執行緒)。false
時,該函式才會阻塞,並且只有在 pred 變為 true
時通知才能解除執行緒阻塞(這對於防止虛假喚醒尤其有用)。其行為如同實現為:
|
|
lck.mutex()
返回)。bool
的值。true
。pred()
,而不管超時是否被觸發(儘管它只有在被觸發時才能為 false
)。condition_variable
物件和引數都處於有效狀態(基本保證)。lck.lock()
)。<chrono>
中提供的標準 時鐘 和 持續時間 型別上的操作永遠不會丟擲)。