C ++ 11: почему std :: condition_variable использует std :: unique_lock?
Я немного запутался в ролиstd::unique_lock
при работе сstd::condition_variable
, Насколько я понялдокументация,std::unique_lock
это в основном раздутая защита замка с возможностью смены состояния между двумя замками.
мы до сих пор использовалиpthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
для этой цели (я думаю, чточто STL использует в posix). Требуется мьютекс, а не замок.
Какие'Разница здесь? Является ли тот факт, чтоstd::condition_variable
имеет дело сstd::unique_lock
оптимизация? Если да, то как именно это быстрее?