C++ lock_guard 学习笔记
1. 了解 C++ 中的锁卫士(lock_guard)
- 作用:lock_guard 是一个RAII(资源获取即初始化)类,用于管理互斥锁的加锁和解锁操作,确保在作用域结束时自动释放锁。
- 优势:通过 lock_guard,可以避免忘记释放锁而导致的死锁和资源泄漏问题,简化了代码逻辑,提高了代码的可读性和可维护性。
- 发展历程:C++11 引入了 lock_guard 类,作为对传统的手动管理互斥锁的一种封装。
示例代码:
#include <iostream>
#include <thread>
#include <mutex>
std::mutex mtx;
void thread_function() {
std::lock_guard<std::mutex> lock(mtx); // 创建 lock_guard 对象并锁定互斥锁
std::cout << "Thread is executing..."