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