繁体   English   中英

主线程和线程池

[英]main thread and thread pools

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

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

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

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

暂无
暂无

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

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