Namespaces
Variants

std::lock_guard<Mutex>:: lock_guard

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
std::lock_guard
Member functions
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) 不抛出任何异常。