std::shared_timed_mutex::lock_shared
來自 cppreference.com
< cpp | thread | shared timed mutex
| 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) |