parallel_invoke在tbb中使用相同的方法

时间:2012-04-09 15:15:38

标签: c++ multithreading parallel-processing tbb

我可以使用parallel_invoke多次执行相同的功能

就像我有遍历字符串的函数扫描一样,我可以对它进行相同的多个任务。

2 个答案:

答案 0 :(得分:0)

是的,你可以。

或者您可以使用task_group:

tbb::task_group g;
g.run(foo);
g.run(foo);

g.wait();

如果你想像拥有CPU核心那样经常运行它,你可以这样做:

tbb::task_group g;

for(auto i = 0; i != tbb::tbb_thread::hardware_concurrency(); ++i) {
    g.run(foo);
}

g.wait();

答案 1 :(得分:0)

是的,没有什么可以阻止你,但是你有责任确定这些行为是否会导致竞争条件或并发问题,这将会破坏你的计划。