我正在使用tbb :: parallel_invoke并行运行2个函数。另外,第一个函数将tbb :: parallel_for用于其算法。我想将tbb :: parallel_invoke使用的线程数限制为2,以便tbb :: parallel_for可以使用其余线程。我不太确定如何使用tbb :: task_arena或任何其他构造来实现这一目标。
答案 0 :(得分:0)
如果仅给parallel_invoke
提供两个功能,它将最多使用两个线程来执行这些功能。执行第一个函数并在其中调用parallel_for
的线程也将执行parallel_for任务。执行第二个函数的线程将使它运行完成,直到此时为止,它将不参与parallel_for
;但是当它完成功能时,它可能还会执行parallel_for
个任务。
换句话说,除非两个parallel_invoke
函数中发生特殊的事情,否则您不需要做任何特别的事情。