【发布时间】:2016-10-23 02:04:49
【问题描述】:
什么时候我应该更喜欢第一段代码而不是第二段,它们是否有根本区别
std::mutex mtx;
mtx.lock();
... //protected stuff
mtx.unlock();
... //non-protected stuff
mtx.lock();
... //etc
和
std::mutex mtx;
std::unique_lock<std::mutex> lck(mtx);
... //protected stuff
lck.unlock();
... //non-protected stuff
lck.lock();
... //etc
我知道 lock_guard 基本上是一个没有锁定和解锁功能的 unique_lock,但我很难区分互斥锁和使用互斥锁的锁。
【问题讨论】:
标签: c++ concurrency locking mutex