C ++ 11: Warum verwendet std :: condition_variable std :: unique_lock?
Ich bin ein bisschen verwirrt über die Rolle vonstd::unique_lock
beim arbeiten mitstd::condition_variable
. Soweit ich das verstanden habeDokumentation, std::unique_lock
ist im Grunde ein aufgeblähter Schlosswächter mit der Möglichkeit, den Zustand zwischen zwei Schlössern zu wechseln.
Hab ich bisher benutztpthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
für diesen Zweck (ich denke, das ist, was die STL auf Posix verwendet). Es braucht einen Mutex, keine Sperre.
Was ist der Unterschied hier? Ist die Tatsache, dassstd::condition_variable
befasst sich mitstd::unique_lock
eine optimierung? Wenn ja, wie genau ist es schneller?