import java.util.concurrent.*;class MyTask extends RecursiveTask<Integer> {//拆分差值不能超过10,计算10以内运算private static final Integer VALUE = 10;private int begin ;//拆分开始值private int end;//拆分结束值private int result ; //返回结果//创建有参数构造public MyTask(int begin,int end) {this.begin = begin;this.end = end;}//拆分和合并过程@Overrideprotected Integer compute() {//判断相加两个数值是否大于10if((end-begin)<=VALUE) {//相加操作for (int i = begin; i <=end; i++) {result = result+i;}} else {//进一步拆分//获取中间值int middle = (begin+end)/2;//拆分左边MyTask task01 = new MyTask(begin,middle);//拆分右边MyTask task02 = new MyTask(middle+1,end);//调用方法拆分task01.fork();task02.fork();//合并结果result = task01.join()+task02.join();}return result;}
}public class ForkJoinDemo {public static void main(String[] args) throws ExecutionException, InterruptedException {//创建MyTask对象MyTask myTask = new MyTask(0,100);//创建分支合并池对象ForkJoinPool forkJoinPool = new ForkJoinPool();ForkJoinTask<Integer> forkJoinTask = forkJoinPool.submit(myTask);//获取最终合并之后结果Integer result = forkJoinTask.get();System.out.println(result);//关闭池对象forkJoinPool.shutdown();}
}

ForkJoinPool---ForkJoinTask相关推荐

  1. Java中J.U.C扩展组件之ForkJoinTask和ForkJoinPool

    Fork/Join框架中两个核心类ForkJoinTask与ForkJoinPool,声明ForkJoinTask后,将其加入ForkJoinPool中,并返回一个Future对象. ForkJoin ...

  2. (十九)java多线程之ForkJoinPool

    本人邮箱: kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://github.com/kco198 ...

  3. 介绍一下 ForkJoinPool

    介绍一下 ForkJoinPool ForkJoinPool 是 JDK1.7 开始提供的线程池.为了解决 CPU 负载不均衡的问题.如某个较大的任务,被一个线程去执行,而其他线程处于空闲状态. Fo ...

  4. ForkJoinPool的使用及基本原理

    目录 1.ForkJoinPool是什么 1.1 分治法 1.2 工作窃取(work-stealing,中文又译作偷工减料,也有道理) 2.简单使用 2.1 不带返回值的计算 2.2 带返回值的计算 ...

  5. ForkJoinPool的理解与使用

    ForkJoinPool充分利用多cpu的优势,把一个任务拆分成多个"小任务",把多个"小任务"放到多个处理器上并行执行:当多个"小任务"执 ...

  6. ForkJoinPool的理解

    ForkJoinPool是JDK7提供的一种"分治算法"的多线程并行计算框架.Fork意为分叉,Join意为合并,一分一合,相互配合,形成分治算法.此外,也可以将ForkJoinP ...

  7. 面试高频——JUC并发工具包快速上手(超详细总结)

    目录 一.什么是JUC 二.基本知识 2.1.进程和线程 2.2.Java默认有两个进程 2.3.Java能够开启线程吗? 2.4.并发和并行 2.5.线程的状态 2.6.wait和sleep的区别 ...

  8. java fork join原理_细说Fork/Join框架

    什么是Fork/Join框架? Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干小任务,最终汇总每个小任务结果后得到大任务结果的框架.Fork就是把一个大 ...

  9. fork/join 全面剖析,你可以不用,但是不能不懂!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:浮云骑士LIN cnblogs.com/linlinismi ...

  10. Java 高并发面试题

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:行者路上 链接:blog.csdn.net/u0129982 ...

最新文章

  1. 深刻剖析与实战BCELoss详解(主)和BCEWithLogitsLoss(次)以及与普通CrossEntropyLoss的区别(次)
  2. 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
  3. ubuntu14.04安装完ros后常用的其他安装
  4. 【转】Hibernate数据过滤
  5. html5编游戏好难,分享微信开发Html5轻游戏中的几个坑
  6. SAP Cloud for Customer的自动化测试指南
  7. c语言从入门到精通ppt,C语言从入门到精通第1章.ppt
  8. es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...
  9. ShuttleFlow 2.0版本跨链协议上线,同时支持OKExChain、Heco及BSC双向互操作
  10. tshark/wireshark/tcpdump实战笔记(更新中...)
  11. chattr 命令锁住一个文件任何人不能删除
  12. 分享老齐【学方法】宽信用周期对股市的影响!
  13. 内核问题解决方法记录
  14. 页面图片 “懒加载”
  15. Linux读取群晖文件,debian读取群晖硬盘
  16. Excel绘制图表时X轴在有数据点的地方才出现刻度标签
  17. ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)
  18. R语言生存分析详解:KM曲线、COX比例风险模型、HR值解读、模型比较、残差分析、是否比例风险验证:基于survival包lung数据集
  19. git clone no matching host key type found. Their offer: ssh-rsa,ssh-dss... 报错
  20. 兄弟俩今年的年龄和是35岁,当哥哥像弟弟现在这样大时,弟弟的年龄恰好是哥哥年龄的一半,哥哥今年几岁?

热门文章

  1. [转帖]oracle改版sql server问题点汇总
  2. 解题:HEOI 2016 求和
  3. zabbix添加对web页面url的状态监控
  4. (第六场)Singing Contest 【模拟】
  5. Linux应用程序设计之网络基础编程
  6. HDFS建筑与shell操作
  7. oracle存储过程和job
  8. android中颜色参考
  9. 巧用httpModules实现网站域名更换
  10. C# Socket与实现