ForkJoinPoolを使用する
ForkJoinPool が他の種類の ExecutorService と異なるのは、主にワーク スティーリングを採用している点です。プール内のすべてのスレッドは、他のアクティブなタスクによって作成されたサブタスクを見つけて実行しようとします (存在しない場合は、最終的にワークの待機をブロックします)。これにより、ほとんどのタスクが他のサブタスクを生成するときに効率的な処理が可能になります (ほとんどの ForkJoinTask がそうであるように)。コンストラクターで asyncMode を true に設定する場合、ForkJoinPools は、決して結合されないイベント スタイルのタスクでの使用にも適している場合があります。
Java 8 は Executor でもう 1 つの API を提供します
static ExecutorService newWorkStealingPool()
使用可能なすべてのプロセッサをターゲット並列処理レベルとして使用して、ワークスティーリング スレッド プールを作成します。

詳細については、このigvtia の記事をIlya Grigorik
ご覧ください。
などの他の関連する Java 並行 API @チュートリアルをご覧ください。ThreadPoolExecutor
ExecutorService