c ++ boost线程问题[关闭]

Posted

技术标签:

【中文标题】c ++ boost线程问题[关闭]【英文标题】:c++ boost threading issue [closed] 【发布时间】:2014-11-14 21:21:34 【问题描述】:

我对 C++ 多线程很陌生。我有以下代码流:

主线程:

创建队列 创建第二个线程 将项目添加到队列中 结束

第二个线程:

如果队列有项目,则弹出它。 (当标志设置为退出时,第二个线程退出)。

问题是,一旦主函数完成将项目添加到队列中,它就会停止。在创建第二个线程后添加 .join() 只会使其无限挂起。

谁能描述一下解决这个问题的方法?

【问题讨论】:

请提供mcve。 因为你似乎已经设置了一个“二级前端”线程,你应该首先join()这些。 【参考方案1】:

似乎第二个线程没有看到“退出”标志。

确保同步访问它或将其设为atomic_bool,例如

【讨论】:

以上是关于c ++ boost线程问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Boost 源代码的链接器错误 [关闭]

C ++ Boost多线程奇怪的行为

C ++ Boost:2个线程之间的变量同步

Boost,C ++如何杀死另一个线程打开的线程?

使用 boost 线程:发出信号并等待终止

如何在 C++ 中使用 boost 创建线程池?