2

いくつかの大きなデータに分割統治ソリューションを実装しようとしています。私は fork と join を使用して物事をスレッドに分解します。ただし、フォークメカニズムに関して質問があります。分割統治条件を次のように設定した場合:

@Override
protected SomeClass compute(){
    if (list.size()<LIMIT){
        //Do something here
        ...
    }else{
        //Divide the list and invoke sub-threads
        SomeRecursiveTaskClass subWorker1 = new SomeRecursiveTaskClass(list.subList());
        SomeRecursiveTaskClass subWorker2 = new SomeRecursiveTaskClass(list.subList());
        invokeAll(subWorker1, subWorker2);
        ...
    }
}

呼び出すのに十分なリソースがない場合subWorker(例: プールに十分なスレッドがない場合) はどうなりますか? Fork/Join フレームワークは、使用可能なスレッドのプール サイズを維持しますか? それとも、この条件を分割統治ロジックに追加する必要がありますか?

4

1 に答える 1