C ++ 11: dlaczego zmienna std :: condition_variable używa std :: unique_lock?

Jestem trochę zdezorientowany co do rolistd::unique_lock podczas pracystd::condition_variable. O ile zrozumiałemdokumentacja, std::unique_lock jest zasadniczo nadęty, z możliwością zamiany stanu między dwoma zamkami.

Do tej pory użyłempthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) w tym celu (chyba to właśnie STL używa na posix). Wymaga muteksu, a nie blokady.

Jaka jest różnica? Czy to faktstd::condition_variable zajmuje sięstd::unique_lock optymalizacja? Jeśli tak, to jak to jest szybciej?

questionAnswers(2)

yourAnswerToTheQuestion