名稱空間
變體
操作

std::shared_lock<Mutex>::try_lock_until

來自 cppreference.com
< cpp‎ | thread‎ | shared_lock
 
 
併發支援庫
執行緒
(C++11)
(C++20)
this_thread 名稱空間
(C++11)
(C++11)
(C++11)
協同取消
互斥
(C++11)
通用鎖管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
條件變數
(C++11)
訊號量
門閂和屏障
(C++20)
(C++20)
期值
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
危險指標
原子型別
(C++11)
(C++20)
原子型別的初始化
(C++11)(C++20 中已棄用)
(C++11)(C++20 中已棄用)
記憶體排序
(C++11)(C++26 中已棄用)
原子操作的自由函式
原子標誌的自由函式
 
 
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) 丟擲的任何異常。

[編輯] 示例

[編輯] 參閱

鎖定關聯的互斥體
(public member function) [編輯]
嘗試鎖定關聯的互斥體
(public member function) [編輯]
在指定持續時間內嘗試鎖定關聯的互斥體
(public member function) [編輯]
解鎖關聯的互斥體
(public member function) [編輯]
嘗試鎖定(即取得所有權)關聯的 TimedLockable 互斥體,如果互斥體在指定時間點之前一直不可用則返回
(std::unique_lock<Mutex> 的公開成員函式) [編輯]