在conditional_variable中防止虚假唤醒

时间:2017-02-11 17:47:49

标签: c++ condition-variable

我正在以这种方式使用condition_variable,但我想知道是否需要一个循环来防止虚假唤醒或谓词足以保护。

unique_lock<mutex> lock(mu_);  //OPTION1
cv_.wait(lock)
// dosomething

是否需要这种保护?

while( !check_predicate() )    //OPTION2
{
  cv_.wait(lock)
}
// dosomething

或者,如果此谓词足以保护

 cv_.wait(lock,[](){ return check_predicate(); };  //OPTION3

0 个答案:

没有答案