std::shared_lock<Mutex>::try_lock_for
來自 cppreference.com
< cpp | thread | shared_lock
template< class Rep, class Period > bool try_lock_for( const std::chrono::duration<Rep,Period>& timeout_duration ); |
(C++14 起) | |
嘗試以共享模式鎖定關聯的互斥體。阻塞直到指定的 timeout_duration
過去或鎖被獲取,以先發生者為準。成功獲取鎖時返回 true,否則返回 false。實際上呼叫 mutex()->try_lock_shared_for(timeout_duration)。
由於排程或資源競爭延遲,此函式可能會阻塞超過 timeout_duration 的時間。
標準建議使用穩定時鐘來測量持續時間。如果實現使用系統時鐘,則等待時間也可能對時鐘調整敏感。
如果沒有關聯的互斥體,或者互斥體已被鎖定,則丟擲 std::system_error。
如果 Mutex
不滿足 SharedTimedLockable 要求,則行為未定義。
目錄 |
[編輯] 引數
timeout_duration | - | 最大阻塞持續時間 |
[編輯] 返回值
如果成功獲取了互斥體的所有權,則為 true,否則為 false。
[編輯] 異常
- 由 mutex()->try_lock_shared_for(timeout_duration) 丟擲的任何異常。
- 如果沒有關聯的互斥體,則丟擲帶有錯誤碼 std::errc::operation_not_permitted 的 std::system_error。
- 如果互斥體已被鎖定,則丟擲帶有錯誤碼 std::errc::resource_deadlock_would_occur 的 std::system_error。
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 參閱
嘗試鎖定(即獲取所有權)關聯的 TimedLockable 互斥體,如果互斥體在指定的時間內不可用則返回 ( std::unique_lock<Mutex> 的 public 成員函式) | |
鎖定關聯的互斥體 (public 成員函式) | |
嘗試鎖定關聯的互斥體 (public 成員函式) | |
在指定時間點之前嘗試鎖定關聯的互斥體 (public 成員函式) | |
解鎖關聯的互斥體 (public 成員函式) |