繁体   English   中英

condition_variable等待参数?

[英]condition_variable wait parameter?

这是什么:

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

第二个参数对我来说并不熟悉。 有人可以给我提示吗?

问候戈兰

除了其他答复者之外,我还要补充说,这显然与condition_variables有很大关系。

具体来说,避免虚假唤醒

条件谓词完成的任务是保证

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

这样做可以确保在适当的时间握住锁。 您可以手动编写此代码,但它很繁琐且容易出错。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM