多线程 ForkJoinPool

不一样的线程池

Posted by Hyuga on July 11, 2019

多线程 ForkJoinPool

特性

JDK 7 开始提供,ForkJoinPoolExecutorService的实现类,也是一种线程池,但和ThreadPool不同的是,ForkJoinPool支持将一个任务拆分成多个”小任务”并行计算,再把多个”小任务”的结果合并成总的计算结果。

原理

ForkJoinPool可充分发挥多核CPU的性能,把一个任务拆分后放到多个处理器核心上并行计算,都执行完成后,再将各个子任务的结果合并。

使用方式

创建了ForkJoinPool实例之后,就可以调用ForkJoinPool的submit(ForkJoinTask task) 或invoke(ForkJoinTask task)方法来执行指定任务了。