times-kzm

life log

ForkJoinExecutorとThreadPoolExecutor

結論だけ書くとこう。

java — fork / joinフレームワークはスレッドプールよりもどのように優れていますか?

Fork-join-executorとthread-pool-executorのどちらを使用するかは、そのディスパッチャーの操作がブロックされるかどうかに大きく依存します。 fork-join-executorは最大数のアクティブスレッドを提供しますが、thread-pool-executorは固定数のスレッドを提供します。スレッドがブロックされると、fork-join-executorはさらに作成しますが、thread-pool-executorは作成しません。ブロッキング操作の場合、スレッドカウントの爆発を防ぐため、一般的にthread-pool-executorを使用する方が適切です。 fork-join-executorでは、より多くの「リアクティブ」操作が優れています。

スレッドをブロックするような処理ではfork-joinは使用せず、thread-pool-executorを使用する。

実用上は問題ないが、なぜfork-joinではだめなのかまだちゃんとできていないかも。。