一、unique_lock与mutex
std::unique_lock
是C++标准库<mutex>
中的一个类模板,用于管理互斥锁(std::mutex
),它提供了更灵活、更方便的锁管理机制,相比直接使用std::mutex
,具有诸多优势。
含义
- 所有权语义:
std::unique_lock
遵循独占所有权语义,即一个std::unique_lock
对象在某一时刻只能与一个std::mutex
实例关联,当std::unique_lock
对象被销毁时,它所关联的互斥锁会自动解锁,这种自动解锁机制有助于避免因代码异常、提前返回等情况导致的死锁问题,保证了资源的正确释放。 - 灵活的生命周期管理:它允许在构造函数中获取锁,也能延迟锁的获取,还可以随时释放