我对需要 a std::unique_lock
when wait a感到很困惑std::conditional_variable
。所以我查看了 VS 2013 中的库代码并变得更加困惑。这是如何std::conditional_variable::wait()
实现的:
void wait(unique_lock<mutex>& _Lck)
{ // wait for signal
_Cnd_waitX(&_Cnd, &_Lck.mutex()->_Mtx);
}
这是某种玩笑吗?将互斥锁包装在 unique_lock 中,然后什么都不做,只是稍后将其取回?为什么不在参数列表中使用互斥锁?