一部のプロジェクトで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タスクは実行を開始しません。
よろしくお願いします、
ゴラン