std::lock_guard<Mutex>::lock_guard
来自cppreference.com
< cpp | thread | lock guard
并发支持库
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::lock_guard
| 成员函数 | ||||
|
lock_guard::lock_guard
|
||||
|
explicit
lock_guard(
mutex_type&
m );
|
(1) | (C++11 起) |
|
lock_guard(
mutex_type&
m, std::adopt_lock_t
t );
|
(2) | (C++11 起) |
|
lock_guard(
const
lock_guard&
) =
delete;
|
(3) | (C++11 起) |
获得给定互斥 m 的所有权。
1) 等效地调用 m.lock() 。
2) 获得互斥 m
的所有权而不试图锁定它。若当前线程不在
m 上保有非共享锁(即由 lock、
try_lock、 try_lock_for 或
try_lock_until 取得的锁)则行为未定义。3) 复制构造函数被删除。
若 m 先于 lock_guard 对象被销毁,则行为未定义。
参数
| m | - | 要获得所有权的共享互斥 |
| t | - | 用于选择构造函数非锁定版本的标签参数 |
异常
1) 抛任何 m.lock() 所抛的异常
2) 不抛出