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
оптимизация? Если да, то как именно это быстрее?