use*_*108 7 c++ multithreading threadpool
标准的习惯用法似乎是创建n = std::thread::hardware_concurrency()线程并将它们放入线程池中。但是主线程与其他线程一样,因此我们可能只创建n - 1线程并将主线程视为线程池的一部分并节省一些资源。有什么理由不应该这样做吗?
如果您也在主线程中进行计算,那么当然可以。
但我经常看到的习惯用法是主线程将工作分派到线程池中,然后等待线程池完成。如果该等待不是通过忙等待完成的,而是通过诸如 之类的东西完成的condition_variable,那么它不会占用处理器核心很长时间。
主线程用于处理操作系统信号也很常见。特别是在 UI 应用程序的情况下,主线程需要保持响应,因此将其用于可能运行时间较长的任务会导致糟糕的用户体验。
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |