Я использую std::condition_variable
в сочетании с std::unique_lock
вот так.Можно использовать std :: condition_variable с std :: lock_guard?
std::mutex a_mutex;
std::condition_variable a_condition_variable;
std::unique_lock<std::mutex> a_lock(a_mutex);
a_condition_variable.wait(a_lock, [this] {return something;});
//Do something
a_lock.unlock();
Он отлично работает. Как я понимаю, std::condition_variable
принимает std::unique_lock
для его ожидания. Но, я пытаюсь совместить его с std::lock_guard
, но не смог.
Мой вопрос:Можно ли заменить std::unique_lock
с std::lock_guard
вместо этого? Это может освободить меня от ручного разблокирования замка каждый раз, когда я его использую.
спасибо за такую быстрое осветление. Оба ответа приемлемы кстати. Просто выберите один из –