在使用 std::condition_variable
时,我对 std::unique_lock
的作用有点困惑。就我对 文件的理解而言,std::unique_lock
基本上是一个臃肿的锁保护,可以在两个锁之间交换状态。
到目前为止,我已经为此目的使用了 pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
(我猜这就是 STL 在 posx 上使用的方法)。它需要互斥锁,而不是锁。
有什么区别吗?std::condition_variable
处理 std::unique_lock
是一种优化吗?如果是这样的话,它究竟有多快?