2

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

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

4

2 回答 2

1

是的你可以。

或者,您可以使用 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();
于 2012-04-09T15:18:38.037 回答
0

是的,没有什么能阻止您,但您有责任确定这些操作是否会导致竞争条件或并发问题,从而破坏您的程序。

于 2012-04-09T15:18:54.950 回答