fork/join框架介绍
在jdk中,给我们提供了一种类似于MapReduce的编程模型。用于把一个大的任务拆分成多个小任务单元,分配到多个线程去并发执行,再把各最小单元的返回的结果聚合返回。这样一来,对于大任务的执行效率就大大提升了。下面我以一个简单的例子来介绍一下api的使用。
实例展示
业务需求:把从1到100个数依次相加,返回最终的结果。
业务分析:把100个数拆分成10组,每组10个元素来执行计算。使用RecursiveTask类来实现。
代码展示:
/**
* 多线程并发求和
*
* @author cobee
* @since 2020-02-28
*/
public class SumJob extends RecursiveTask<Integer> {
// 存放元素的list集合
private List<Integer> elems;
private int start;
private int end;
public SumJob(List<Integer> elems, int start, int end) {
this.elems = elems;
this.start = start