C++ 命名要求: BasicLockable (C++11 起)
來自 cppreference.com
BasicLockable 要求描述了為執行代理(即執行緒)提供獨佔阻塞語義的型別的最小特性。
目錄 |
[編輯] 要求
對於型別 L
要滿足 BasicLockable,型別 L
的物件 m
必須滿足以下條件:
表示式 | 前置條件 | 效果 |
---|---|---|
m.lock() | 阻塞直到當前執行代理(執行緒、程序、任務)可以獲取鎖。如果丟擲異常,則不獲取鎖。 | |
m.unlock() | 當前執行代理持有 m 上的非共享鎖。 |
釋放執行代理持有的非共享鎖。 不丟擲異常。 |
[編輯]
如果透過呼叫 lock
、try_lock
、try_lock_for
或 try_lock_until
成員函式獲取了物件上的鎖,則該鎖被稱為非共享鎖。
[編輯] 標準庫
以下標準庫型別滿足 BasicLockable 要求:
(C++11) |
提供基本的互斥設施 (類) |
(C++11) |
提供互斥設施,可以被同一執行緒遞迴鎖定 (類) |
(C++11) |
提供互斥設施,可以被遞迴鎖定 被同一執行緒鎖定並實現帶超時的鎖定 (類) |
(C++17) |
提供共享互斥設施 (類) |
(C++14) |
提供共享互斥設施,並實現帶超時鎖 (類) |
(C++11) |
提供互斥設施,實現帶超時的鎖定 (類) |