ForkJoinPool forkJoinPool = new ForkJoinPool.commonPool(); ForkJoinTask<"这里是相关的返回类型"> submit = forkJoinPool.submit(() -> "这里调用相关的方法"); ... //下面可以定义多个ForkJoinTask 用于ForkJoinPool介绍:
ForkJoin是由JDK1.7后提供多线并发处理框架,ForkJoin的框架的基本思想是分而治之。使用ForkJoin将相同的计算任务通过多线程的进行执行。从而能提高数据的计算速度。在google的中的大数据处理框架mapreduce就通过类似ForkJoin的思想。通过多线程提高大数据的处理。
ForkJoinPool工作窃取:
当任务分为多个子任务时,每个子任务的处理时间不一样。
例如此时有A,B两个任务,子任务A耗时1ms,子任务B还在执行,那么子任务A会一直等待子任务B结束,所以最终耗时为子任务B的耗时。
而如果子任务A执行完毕后,处理子任务B的任务,并且执行完毕后将任务归还给子任务B。这样就可以提高执行效率,这就是工作窃取。



