C++多线程库的常用模板类 std::lock_guard
格式:类名 + 头文件 + 用例 + 解释说明
1 模板类类名: 2 std::lock_guard 3 4 头文件: 5 #include <mutex> 6 7 用例: 8 9 std::mutex m; 10 std::lock_guard<std::mutex> lk(m);
解释说明:
C++标准库为互斥量提供了一个RAII语法的模板类std::lock_guard
,在构造时对互斥量上锁,并在析构的时进行解锁,从而保证了一个已锁互斥量能被正确解锁。
小熊理解:
guard 单词有守卫的意思, 因此我把 std::lock_guard 叫做 “锁的守卫” 。 其实在C++编程中,“守卫“ 的编程思想还是很常见也很重要的。