std::unique_lock<Mutex>::try_lock_until
來自 cppreference.com
< cpp | thread | unique lock
template< class Clock, class Duration > bool try_lock_until( const std::chrono::time_point<Clock, Duration>& timeout_time ); |
(C++11 起) | |
嘗試鎖定(即,取得)關聯互斥的所有權。阻塞直到指定timeout_time到達或成功獲取鎖,以先發生者為準。成功獲取鎖時返回true,否則返回false。可能會阻塞超過timeout_time。
實際上呼叫mutex()->try_lock_until(timeout_time)。
如果沒有關聯的互斥鎖,或者互斥鎖已經被同一執行緒鎖定,則丟擲std::system_error。
Clock
必須滿足Clock要求。如果std::chrono::is_clock_v<Clock>為false,則程式格式錯誤。(C++20 起)
目錄 |
[編輯] 引數
timeout_time | - | 最大阻塞時間點 |
[編輯] 返回值
如果成功獲取互斥鎖的所有權,則為true,否則為false。
[編輯] 異常
- 由mutex()->try_lock_until(timeout_time)丟擲的任何異常。
- 如果沒有關聯的互斥鎖,則丟擲std::system_error,錯誤程式碼為std::errc::operation_not_permitted。
- 如果互斥鎖已被鎖定,則丟擲std::system_error,錯誤程式碼為std::errc::resource_deadlock_would_occur。
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 參閱
鎖定(即獲取)關聯的互斥量 (public member function) | |
嘗試鎖定(即獲取)關聯的互斥量而不阻塞 (public member function) | |
嘗試鎖定(即,取得)關聯的TimedLockable互斥鎖,如果在指定時間持續時間內互斥鎖不可用則返回 (public member function) | |
解鎖(即釋放)關聯的互斥量 (public member function) |