C++多线程库的常用类 std::mutex
格式:类名 + 头文件 + 用例 + 解释说明
1 类名: mutex 2 3 头文件: #include <mutex> 4 5 用例; 6 std::mutex m_mutex;
解释说明:
std::mutex C++提供的互斥量,用在多线程编程中,来保护共享数据。
C++中通过实例化std::mutex
创建互斥量实例,通过成员函数lock()对互斥量上锁,unlock()进行解锁。因此被上锁的互斥量,确保能够被解锁非常关键, 不管是程序的各个逻辑分支,抑或是发生异常。
其实,实践中不推荐直接去调用 lock() 和 unlock() 成员函数,调用成员函数就意味着,必须在每个函数出口都要去调用unlock(),也包括异常的情况。而是通过别的手段,例如: std::lock_guard。
C++多线程库的常用模板类 std::lock_guard