有没有办法在Intels Threading Building Blocks中控制线程数,亲和力和创建时间?

时间:2013-09-15 20:55:07

标签: c++ multithreading tbb

目前我使用Intels TBB来使用tbb :: parallel_for并行化一些工作。似乎线程的数量和它们启动的时间点在后台由TBB控制。查看用户指南和参考文档,我找不到有关是否有任何控制选项或模块的任何提示。 我希望能够修改线程数量,如果可能的话,决定何时创建线程池。

修改 为什么控制线程数很好:该程序旨在在我们的集群系统和我们的用户上运行。由于处理时间并不总是可以为一个用户提供,这是一个很好的功能

问题:你能解释为什么你需要更多地控制线程何时开始? 答:通过TBB进行多线程处理在许多地方使用,因为有些人担心“开销”,我的任务就是找出一种方法来启动线程一次。

1 个答案:

答案 0 :(得分:0)

这可能有所帮助 - 我从未真正使用过TBB,但this answer似乎就是你所要求的。

“创建调度程序时,可以将线程数指定为

tbb::task_scheduler_init init(nthread);

否则你可以使用

tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic);

在这种情况下,tbb调度程序会创建与CPU内核一样多的线程。“