import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.concurrent.RecursiveTask;
import java.util.stream.LongStream;
public class ForkJoinSumCalculator extends RecursiveTask{
//要求和的数组
private final long[] numbers;
//子任务处理数组的起始位置和终止位置
private final int start;
private final int end;
//不再将任务分解为子任务的数组大小
public static final long THRESHOLD = 10_000;
//公共构造函数用于创建主任务
public ForkJoinSumCalculator(long[] numbers)
{
this(numbers,0,numbers.length);
}
//私有构造函数用于以递归方式为主任务创建子任务
private ForkJoinSumCalculator(long[] numbers,int start,int end)
{
this.numbers = numbers;
this.start = start;
this.end = end;
}
//覆盖RecursiveTask抽象方法,负责求和的部分的大小
@Override