我正在将 tbb 用于某些项目,并且我被迫使用 tbb 任务。
我的程序有 N 个任务,它们是交互的。
伪代码如下:
class Task;
Task* t[N];
class Task {
startTask(Task &t) {
t.notify();
}
execute() {
while(!end){
if(some condition 1)
wait();
for(i = 0; i < N; ++i)
if(some condition 2)
startTask(*t[i]);
if(some condition 3)
end = true;
}
}
};
N >> 核心
如果我为此作业使用 condition_variable,则线程停止并且线程停止所有任务。有什么方法可以用来完成我的工作吗?
我试图使用回收,但只有 CORE_NUMBER 任务在工作,其他 N-CORE_NUMBER 任务永远不会开始执行。
此致,
戈兰