1

一部のプロジェクトで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タスクは実行を開始しません。

よろしくお願いします、

ゴラン

4

1 に答える 1