首页 > 解决方案 > TBB parallel_for 线程池

问题描述

我正在尝试了解一些关于 TBB 的知识,但我怀疑我无法解决它。

Afaik,TBB 使用线程池,因此它不需要一直创建线程。如果你使用 tbb::parallel_for,它是使用这个线程池还是创建新线程?如果它使用线程池,那么线程池是如何创建的?无需进行任何调用来创建或配置线程池。它是否在第一次并行调用时创建线程池?

标签: c++multithreadingthreadpooltbb

解决方案


TBB 有内部线程池,它需要一些时间在第一个 tbb 的算法调用(“热身”库)上创建线程。您不需要显式创建它。1 是一个相当古老的帖子,但它有一个线索它是如何在引擎盖下工作的(或者是前一段时间)

此外,如果您需要为算法的一部分指定线程计数或工作线程的堆栈大小的一些限制,您可以使用task_scheduler_init但它不是与实际线程计数硬绑定的。仅供参考。


推荐阅读