C++ 命名要求: SharedLockable (自 C++14 起)
來自 cppreference.com
SharedLockable 要求描述了為執行代理(即執行緒)提供共享阻塞語義的型別的最小特徵。
目錄 |
[編輯] 要求
為了使型別 L
成為 SharedLockable,對於型別 L
的物件 m
,必須滿足以下條件:
表示式 | 前置條件 | 效果 | 返回值 |
---|---|---|---|
m.lock_shared() | 阻塞直到為當前執行代理(執行緒、程序、任務)獲取鎖。如果丟擲異常,則不獲取鎖。 | ||
m.try_lock_shared() | 嘗試為當前執行代理(執行緒、程序、任務)獲取鎖,不阻塞。如果丟擲異常,則不獲取鎖。 | 如果獲取到鎖則為 true,否則為 false | |
m.unlock_shared() | 當前執行代理持有 m 上的共享鎖。 |
釋放執行代理持有的共享鎖。 不丟擲異常。 |
[編輯]
對一個物件的鎖被稱為共享鎖,如果它是透過呼叫 lock_shared
、try_lock_shared
、try_lock_shared_for
或 try_lock_shared_until
成員函式獲得的。
[編輯] 標準庫
以下標準庫型別滿足 SharedLockable 要求
(C++17) |
提供共享互斥設施 (類) |
(C++14) |
提供共享互斥設施,並實現帶超時鎖 (類) |