首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主线程池和线程池

主线程池和线程池
EN

Stack Overflow用户
提问于 2020-12-26 18:13:15
回答 1查看 149关注 0票数 7

标准的习惯用法似乎是创建n = std::thread::hardware_concurrency()线程并将它们放入线程池中。但是主线程是一个与其他线程类似的线程,因此我们可以只创建n - 1线程,并将主线程视为线程池的一部分,从而节省一些资源。有什么理由不应该这样做吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-26 18:33:18

如果你也在主线程中进行计算,那么当然可以。

但我经常看到的习惯用法是,主线程将工作分派到线程池中,然后等待线程池完成。如果等待不是通过忙等待完成的,而是类似于condition_variable,那么它不会占用处理器核心很长时间。

主线程用于处理操作系统信号也是很常见的。特别是在UI应用程序的情况下,主线程需要保持响应,因此将其用于可能运行更长时间的任务会导致糟糕的用户体验。

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

https://stackoverflow.com/questions/65455322

复制
相关文章

相似问题

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