我正在使用英特尔 TBB 实现双音排序。使用parallel_invoke方法时一切顺利。但是当使用task_group(不调用wait方法)时,输出没有排序。如下使用 task_group 时,程序不会终止。
void bitonic_merge(bool up, int array[],int size){
if(size==1){
return;
}
int m = greatestPowerOfTwoLessThan(size);
bitonic_compare(up, array, size - m, m);
g->run(Bitonic_Merge(up, array , m));
g->run(Bitonic_Merge(up, &array[m],size - m));
g->wait();
return;
}
有人能看出什么问题吗?parallel_invoke 和使用 task_group 有什么区别?还有在这种情况下使用什么更好?parallel_invoke或task_group?_ 还是我应该使用其他方法?
提前致谢