名稱空間
變體
操作

std::shared_timed_mutex::lock_shared

來自 cppreference.com
 
 
併發支援庫
執行緒
(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 中已棄用)
原子操作的自由函式
原子標誌的自由函式
 
 
void lock_shared();
(C++14 起)

獲取互斥量的共享所有權。如果另一個執行緒以獨佔所有權持有互斥量,則呼叫 lock_shared 將會阻塞執行,直到可以獲取共享所有權。

如果一個執行緒已經以任何模式(獨佔或共享)擁有 mutex,然後呼叫 lock_shared,則行為是未定義的。

如果以共享模式鎖定互斥量的共享所有者數量已超過實現定義的上限,則 lock_shared 會阻塞執行,直到共享所有者數量減少。所有者數量的上限保證至少為 10000。

在同一互斥量上先前的 unlock() 操作與此操作同步(如 std::memory_order 中所定義)。

目錄

[編輯] 引數

(無)

[編輯] 返回值

(無)

[編輯] 異常

發生錯誤時丟擲 std::system_error,包括底層作業系統阻止 lock 滿足其規範的錯誤。如果丟擲任何異常,互斥量將不會被鎖定。

[編輯] 注意

lock_shared() 通常不直接呼叫:std::shared_lock 用於管理共享鎖定。

[編輯] 示例

[編輯] 參閱

鎖定互斥體,如果互斥體不可用則阻塞
(public member function) [編輯]
嘗試以共享所有權鎖定互斥體,如果互斥體不可用則返回
(public member function) [編輯]
解鎖互斥體(共享所有權)
(public member function) [編輯]