首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在条件下等待线程的有序通知(C++,boost)

在条件下等待线程的有序通知(C++,boost)
EN

Stack Overflow用户
提问于 2013-12-26 19:41:49
回答 1查看 1.2K关注 0票数 0

是否有人知道一个条件变量类,它允许通知等待条件的线程按照它们开始等待的顺序得到通知?

我目前正在使用boost类condition_variable,但是调用condition_variable::notify_one()会唤醒一个随机线程,而不是首先调用condition_variable::wait()的线程。我还尝试在调用condition_variable::wait()之前将线程in添加到队列中,以便调用所有等待线程唤醒的condition_variable::notify_all(),检查队列,然后再次等待或继续(只有一个线程,即队列中的线程优先)。问题是,两次调用notify_all()并不能保证所有线程都会被唤醒两次,从而丢失通知。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-26 19:45:40

奇怪的是,您要求线程按特定顺序被唤醒,并且听起来对您的设计表示怀疑。无论如何,您的想法是您可以拥有条件变量队列(每个线程一个),并且可以从队列顶部调用一个条件变量的notify_one()。在等待线程中,您需要执行额外的逻辑来检查它是否偶尔被等待中断。同样,听起来也很奇怪,为什么您需要线程按照特定的顺序唤醒,并且您可能需要重新考虑您的设计。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20790319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档