std::shared_lock<Mutex>::try_lock_for
出自cppreference.com
| |
(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> 的公開成員函數)
| |
| 鎖定關聯的互斥體 (公開成員函數) | |
| 嘗試鎖定關聯的互斥體 (公開成員函數) | |
| 嘗試鎖定關聯的互斥體,直至指定的時間點 (公開成員函數) | |
| 解鎖關聯的互斥體 (公開成員函數) |