C++ 并行调用tbb中的相同方法
我可以使用parallel_invoke多次执行同一个函数吗 就像我有遍历字符串的函数扫描一样,我可以让相同的多个任务对它进行操作。是的,你可以 或者,您可以使用任务组:C++ 并行调用tbb中的相同方法,c++,multithreading,parallel-processing,tbb,C++,Multithreading,Parallel Processing,Tbb,我可以使用parallel_invoke多次执行同一个函数吗 就像我有遍历字符串的函数扫描一样,我可以让相同的多个任务对它进行操作。是的,你可以 或者,您可以使用任务组: 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();
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();
是的,没有任何东西会阻止您,但您有责任确定这些操作是否会导致竞争条件或并发问题,从而破坏您的程序。是否有其他方法可以根据我拥有的内核数运行这些操作?我想问您是否需要#包括@aTm no,只有在明确启动任务计划程序时才需要它,这是您不应该做的。@aTm注意,您可以投票并接受答案,特别是如果您发现答案有用并且可以使用它们的代码的话。@StephanDollberg他是新来的,所以我投票支持他:P(他至少接受了答案)也许你可以添加一些伪代码来描述你想做什么?