C 除了使用TBB :: task_group外,我如何一次运行三个不同的Parallel_for函数



我有代码,我必须立即运行Parallel_for(彼此独立)。

代码类似:

tbb::parallel_for(range1,func1());//first
tbb::parallel_for(range2,func2());//second
tbb::parallel_for(range3,func3());//third

我尝试使用task_group。还有其他方法吗?

并行运行任何并行算法的方法有很多方法,您只想在您选择的另一种并行算法中运行它。task_group只是一个例子。案例的最简单方法是使用parallel_invoke

tbb::parallel_invoke([]{
        tbb::parallel_for(range1,func1);//first
    }, []{
        tbb::parallel_for(range2,func2);//second
    }, []{
        tbb::parallel_for(range3,func3);//third
    }
);

但是,一个人可以选择在一系列范围和功能指针上使用另一个parallel_for,或使用parallel_pipelineparallel_for_each或原始的低级tbb::task

您可以将它们每个std ::将它们都放在单个螺纹中,然后加入。另请参阅。

最新更新