1+2+3+4..... 累加到1000 分区间相加后合并的Demo import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.RecursiveTask; class ForkJoin extends RecursiveTask<Integer> { private static final Integer VALUE = 10; //最大区间值 private int begin; //开始值 private int end; //结束值 private int result; //返回值 ForkJoin(int begin, int end){ //构造器 this.begin = begin; this.end = end; } @Override protected Integer compute() {//重写RecursiveTask 的方法 if (end - begin <= VALUE){ //如果起止值间隔小于等于最大区间则开始处理。 for (int i = begin; i <= end; i++) { result += i; } }else {//否则继续拆分处理 ForkJoin join1 = new ForkJoin(begin,((end - begin)/2) + begin); ForkJoin join2 = new ForkJoin(((end - begin)/2) + begin + 1,end); joi
分支合并线程 ForkJoinPool 使用Demo
于 2022-05-29 12:30:51 首次发布
这篇博客通过一个1到1000的累加示例,演示了Java中ForkJoinPool和RecursiveTask如何配合进行任务并行处理。代码创建了一个ForkJoin子类,当区间值小于等于10时直接计算,否则继续拆分任务。最后在main方法中创建ForkJoinPool,提交任务并打印结果,展示了并行计算的优势。
摘要由CSDN通过智能技术生成