限制tbb中的线程数

Limiting the number of threads in tbb

我正在并行使用 tbb::parallel_invoke 到 运行 2 个函数。此外,第一个函数使用 tbb::parallel_for 作为其算法。我想将 tbb::parallel_invoke 使用的线程数限制为 2,以便 tbb::parallel_for 可以使用其余线程。我不太确定如何使用 tbb::task_arena 或任何其他构造来实现此目的。

如果你只给parallel_invoke两个函数,它最多使用两个线程来执行这些函数。执行第一个函数并在其中调用 parallel_for 的线程也将执行 parallel_for 任务。执行第二个函数的线程将 运行 它完成,直到那时它不会参与 parallel_for;但是当它完成该功能时,它也可能需要 parallel_for 个任务。

换句话说,除非这两个 parallel_invoke 函数中有特殊的事情发生,否则您不需要做任何特殊的事情。