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?