std::unique_lock <std::mutex> lck(mtx)
时间: 2023-12-08 11:31:31 浏览: 201
C++11 并发指南之std::mutex详解
std::unique_lock<std::mutex> lck(mtx)是一个用于互斥量的RAII(Resource Acquisition Is Initialization)包装器。它具有以下特点:
- std::unique_lock可以在构造时选择是否立即锁定互斥量,而std::lock_guard在构造时会立即锁定互斥量。这使得std::unique_lock更加灵活,但同时也可能带来更多的开销。
- std::unique_lock支持同时锁定多个互斥量,这可以避免多个互斥量之间的死锁问题。当在使用std::condition_variable时,应该使用std::unique_lock而不是std::lock_guard。
- 与std::lock_guard不同的是,程序员可以手动解锁std::unique_lock,但不能手动解锁std::lock_guard。
阅读全文