public member function
<mutex>

std::unique_lock::try_lock_until

template <class Clock, class Duration>  bool try_lock_until (const chrono::time_point<Clock,Duration>& abs_time);
在指定時間點前嘗試鎖定互斥量
呼叫所管理定時互斥量物件的成員函式 try_lock_until,並使用其返回值來設定所有權狀態

如果呼叫前所有權狀態已為 true,或物件當前未管理任何互斥量物件,則函式將丟擲 system_error 異常。

引數

abs_time
執行緒停止阻塞的時間點,放棄獲取鎖。
time_point 是表示特定絕對時間的物件。

返回值

如果函式成功鎖定所管理的定時互斥量物件,則返回 true
否則返回 false

資料競爭

訪問/修改 unique_lock 物件。
作為原子操作訪問/修改所管理的定時互斥量物件(不引起資料競爭)。

異常安全

基本保證:如果此成員函式丟擲異常,則 unique_lock 物件仍處於有效狀態。

如果呼叫失敗,將丟擲 system_error 異常。
異常型別錯誤條件描述
system_errorerrc::resource_deadlock_would_occurunique_lock 物件已擁有鎖
system_errorerrc::operation_not_permittedunique_lock 物件當前未管理任何互斥量物件(因為它被預設構造移動釋放)。
如果對所管理的定時互斥量物件try_lock_until 呼叫失敗,或者庫實現透過此類機制報告了任何其他條件,也會丟擲異常。

另見