condition_variable等待参数?

时间:2014-05-07 09:17:24

标签: c++ boost condition-variable

这是什么:

bool ready;
boost::mutex mutex;
boost::condition_variable cond;
boost::unique_lock<boost::mutex> lock(mutex);
cond.wait(lock,[]{return ready;});

第二个参数对我来说不熟悉。有人会给我一个暗示吗?

问候 戈兰

1 个答案:

答案 0 :(得分:2)

除了其他的回答者之外,我还要补充一点,它显然与condition_variables有很大关系。

具体而言,避免虚假的唤醒

条件谓词完成的是它将保证

  • 仅在实际满足条件谓词时返回
  • 如果在等待之前已满足条件,
  • 不会阻止条件变量。

这样做可确保在适当的时间保持锁定。你可以手动编写,但这将是乏味且容易出错的。

事实上,在许多情况下,人们只是忘记了等待(等待条件已满足时的简历等待)和虚假的唤醒。