ExecutorService
Javaからを使用して次の動作を実現したいと思います。完了する必要のあるタスクが多数あり、それらはすべて並行して実行できます。次の方法で、メインスレッドから一度にN個のタスクのみをスケジュールしたいと思います。
- アクティブなタスクの数が<N=>の場合、新しいタスクをスケジュールします(エグゼキュータサービスはすでにそれを実行しています)
- それ以外の場合は、タスクの1つが完了するまでメインスレッドでブロックします=> N個の最初のタスクをキューに格納し、最初のタスクをデキューしてget()を呼び出すのとほぼ同じです)
上記のようにExecutorServiceを微調整する方法はありますか?