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