std::shared_lock<Mutex>::try_lock_until
來自 cppreference.com
< cpp | thread | shared_lock
template< class Clock, class Duration > bool try_lock_until( const std::chrono::time_point<Clock,Duration>& timeout_time ); |
(C++14 起) | |
嘗試以共享模式鎖定關聯的互斥體。阻塞直到指定的 timeout_time 到達或獲取到鎖,以先發生者為準。成功獲取鎖時返回 true,否則返回 false。阻塞時間可能長於 timeout_time 到達的時間。
實質上呼叫 mutex()->try_lock_shared_until(timeout_time)。
如果沒有關聯的互斥體,或者互斥體已被鎖定,則丟擲 std::system_error。
Clock
必須滿足 Clock 的要求。如果 Mutex
不滿足 SharedTimedLockable 的要求,則行為未定義。如果 std::chrono::is_clock_v<Clock> 為 false,則程式非良構。(C++20 起)
目錄 |
[編輯] 引數
timeout_time | - | 最大阻塞時間點 |
[編輯] 返回值
如果成功獲取互斥體的所有權,則為 true,否則為 false。
[編輯] 異常
- 由 mutex()->try_lock_shared_for(timeout_time) 丟擲的任何異常。
- 如果沒有關聯的互斥體,則丟擲帶有錯誤碼 std::errc::operation_not_permitted 的 std::system_error。
- 如果互斥體已被鎖定,則丟擲帶有錯誤碼 std::errc::resource_deadlock_would_occur 的 std::system_error。
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 參閱
鎖定關聯的互斥體 (public member function) | |
嘗試鎖定關聯的互斥體 (public member function) | |
在指定持續時間內嘗試鎖定關聯的互斥體 (public member function) | |
解鎖關聯的互斥體 (public member function) | |
嘗試鎖定(即取得所有權)關聯的 TimedLockable 互斥體,如果互斥體在指定時間點之前一直不可用則返回 ( std::unique_lock<Mutex> 的公開成員函式) |