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

Ответы на вопрос(2)

Ваш ответ на вопрос