std::lock quard<std::mutex>lck(mtx):
时间: 2024-05-05 14:14:32 浏览: 112
std::lock_guard<std::mutex>是C++标准库中的一个类模板,用于实现互斥锁的自动管理。它是基于RAII(资源获取即初始化)原则设计的,可以确保在作用域结束时自动释放互斥锁,避免了手动调用unlock()函数的繁琐操作。
使用std::lock_guard<std::mutex>时,需要传入一个std::mutex对象作为参数,例如std::mutex mtx。在创建std::lock_guard对象时,会自动调用std::mutex的lock()函数来获取互斥锁。当std::lock_guard对象的作用域结束时,会自动调用std::mutex的unlock()函数释放互斥锁。
这样做的好处是,即使在函数执行过程中发生异常或提前返回,也能保证互斥锁一定会被释放,避免了死锁等问题。
阅读全文