【问题标题】:condition_variable wait parameter?条件变量等待参数?
【发布时间】:2014-05-07 09:17:23
【问题描述】:

这是什么:

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

第二个参数对我来说看起来很陌生。谁能给我一个提示?

问候 戈兰

【问题讨论】:

标签: c++ boost condition-variable


【解决方案1】:

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

具体来说,避免虚假唤醒

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

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

这样做可以确保在适当的时间持有锁。您可以手动编写,但会很乏味且容易出错。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 2021-08-23
    • 2021-08-04
    • 1970-01-01
    • 2011-10-10
    相关资源
    最近更新 更多