1> 作用防止竞态
2> 需要#include <mutex>
3> 使用方法
1、创建一个互斥锁对象
mutex mut;
2、上锁
mut.lock();
3、解锁
mut.unlock();
一般结合以下两个类使用
unique_lock <mutex> lock(mut);
lock_guard <mutex> lock(mut);
1、两个类在创建lock对象时都会根据mut参数自动上锁
2、在线程结束或异常终止时都会自动解锁,防止锁死其他线程
3、unique_lock允许定义后解锁,更灵活
4、lock_guard不允许定义后解锁,更简单,性能更高
5、两者的设计对于第2点很重要,防止锁死线程
6、这两个跟智能指针有些像

被折叠的 条评论
为什么被折叠?



