public class SumArray {

private static class SumTask extends RecursiveTask{

private final static int THRESHOLD = MakeArray.ARRAY_LENGTH/10;

//表示我们要实际统计的数组

private int[] src;

//开始统计的下标

private int fromIndex;

//统计到哪里结束的下标

private int toIndex;

public SumTask(int[] src, int fromIndex, int toIndex) {

this.src = src;

this.fromIndex = fromIndex;

this.toIndex = toIndex;

}

@Override

protected Integer compute() {

if(toIndex-fromIndex < THRESHOLD) {

int count = 0;

for(int i=fromIndex;i<=toIndex;i++) {

//SleepTools.ms(1);

count = count + src[i];

}

return count;

}else {

//fromIndex....mid....toIndex

int mid = (fromIndex+toIndex)/2;

SumTask left = new SumTask(src,fromIndex,mid);

SumTask right = new SumTask(src,mid+1,toIndex);

invokeAll(left,right);

return left.join()+right.join();

}

}

}

public static void main(String[] args) {

ForkJoinPool pool = new ForkJoinPool();

//随机生成数组

int[] src = MakeArray.makeArray();

SumTask innerFind = new SumTask(src,0,src.length-1);

long start = System.currentTimeMillis();

pool.invoke(innerFind);//同步调用

System.out.println("Task is Running.....");

System.out.println("The count is "+innerFind.join()

+" spend time:"+(System.currentTimeMillis()-start)+"ms");

}

}

java中fork什么意思_最通俗的例子讲解Java中的fork-join相关推荐

  1. 下面哪种不是java语言的注释写法_下列哪项不是Java语言中所规定的注释样式?()...

    [单选题]下列声明和赋值语句错误的是() [单选题]Java语言中表达式"11"+22的结果是() [单选题]以下表达式语句不合法的是() [判断题]3. 教育活动是在教师有目的. ...

  2. java中git使用教程_【教程】Git在Eclipse中的安装和基本使用

    一.安装 点击 Help->Install New Software->add 安装地址为:http://download.eclipse.org/egit/updates/ 选择插件 点 ...

  3. 用Java代码实现日志记录器_如何在此简单的Java日志记录实现中附加到日志文件? - java...

    我得到了以下用于创建和管理Logger的类.每当执行代码和程序时,都会使用对静态getLogger()捕获块的调用进行记录. public class Log { private static fin ...

  4. java中解密的思想_北大青鸟翔天解密,Java核心思想两大点

    Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.对核心概念和思想的掌握可以帮助我们举一反三.触类旁通,有助于提升我们对整个J ...

  5. java能调用python吗_如何使用运行时在Java中调用python程序 - java

    我想用来自Java的参数调用python程序.但是我的输出是空白.代码在这里. Python代码在这里: import sys print(sys.argv[1]) Java代码在这里: public ...

  6. linux中jdk添加字体_在Linux上为Openjdk Java定义/安装字体的位置

    在Ubuntu上安装了Oracle 8 jdk,在jre/lib中它具有各种fontProperties文件和一个包含字体的字体目录.但是,当安装OpenJdk 8时,jre/lib中的字体文件上没有 ...

  7. java jdk 1.8 安装_下载、安装、配置 java jdk1.8

    近期配置react native的开发环境,所以就从配置环境开始.rn的环境配置有那么几项,其中重要的一个就是java jdk(Java Development Kit 的缩写),那么以下就是下载.安 ...

  8. java匿名对象赋初值_不想进BAT的Java程序员不是好程序员,BAT后端Java岗面试真题分享

    一. JDK/JRE/JVM 三者之间的联系与区别 JDK:开发者提供的开发工具箱,是给程序开发者用的.它包括完整的JRE(Java Runtime Environment),Java运行环境,还包含 ...

  9. fusion 360安装程序的多个实例正在同时运行。_阿里架构师实例讲解——Java多线程编程;详细的不能再详细了...

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享! Java架构筑基​zhuanlan.zhihu.com Java架构筑基--专注于Java技术的研究与分享! 后续文章 ...

最新文章

  1. 【算法分析与设计】顺序存储结构的搜索算法
  2. php 类 和 函数,PHP函数和类
  3. DataTable转Csv,Excel(转)
  4. action属性注入为null
  5. CefSharp如何获取请求响应头Headers中的数据
  6. Apktool命令使用总结
  7. 20135202闫佳歆--week 9 期中总结
  8. 时间、延迟及延缓操作
  9. 7行代码实现一个Tvoc/eCO2有害气体检测仪
  10. 微软云和阿里云的区别
  11. 大创:小车运动部分计划及端口(1)
  12. MySQL语句之show
  13. IT培训行业揭秘(二)
  14. Closing non transactional SqlSession导致spring事务不生效
  15. 最小堆 构建、插入、删除的过程图解
  16. 机器学习硬件设施差?免费使用谷歌的GPU云计算平台
  17. 【报告分享】2021中国车市如何应对人口下滑冲击-易车研究院(附下载)
  18. 老照片怎么修复清晰?掌握这个技巧,一键智能修复
  19. LeetCode高频题:多多发明了一个跳棋游戏,n个格子组成,格子上有字符‘L’或‘R’,遇到L走i-xi,遇到R走i+xi,问每个位置为起点,到游戏结束,分别需要走多少步
  20. MFC 加载 EXCEL 并快速读取大量数据

热门文章

  1. java getenv_Java利用System.getenv()和System.getProperty()来读取配置信息
  2. Keras深度学习实战(41)——语音识别
  3. 数据治理系列文章:(6)数据质量
  4. 机器学习基础(一)——线性代数
  5. 克服自卑心理,展现真实自我
  6. wevedeveloper靶机渗透
  7. 电话会议蓝牙耳机推荐哪款?电话会议打电话方便的耳机推荐
  8. 学术界的“父母内卷”:近1/4终身教授拥有博士父母,是普通人的25倍
  9. horspool 算法java实现_关于String里indexOf()的一些思考
  10. 魔众抽奖系统 v3.3.0 轮播动图 系统升级优化