//求和计算任务
public class Demo01 extends RecursiveTask<Long> {private long start; //1private long end;     //1990900000//临界值private long temp = 10000L;public Demo01(long start, long end) {this.start = start;this.end = end;}//计算方法@Overrideprotected Long compute() {if ((end - start) < temp) {long sum = 0L;for (long i = start; i < end; i++) {sum += i;}return sum;} else {//分支合并计算 forkjoinlong middle = (start + end) / 2; //中间值Demo01 forkjoin1 = new Demo01(start, middle);forkjoin1.fork(); //拆分任务,把任务压入线程队列Demo01 forkjoin2 = new Demo01(middle+1, end);forkjoin2.fork();//拆分任务,把任务压入线程队列return forkjoin1.join() + forkjoin2.join();}}}
//大数据量的时候使用
public class Test369 {public static void main(String[] args) throws ExecutionException, InterruptedException {test01();test02();test03();}
//普通的public static void test01(){long sum = 0L;long start = System.currentTimeMillis();for (long i = 1; i < 10_0000_0000L; i++) {sum+=i;}long end = System.currentTimeMillis();System.out.println("sum="+sum+"时间: "+(end-start));}//使用forkjion的人员public static void test02() throws ExecutionException, InterruptedException {long start = System.currentTimeMillis();ForkJoinPool forkJoinPool = new ForkJoinPool();ForkJoinTask<Long> tast = new Demo01(0L, 10_0000_0000L);ForkJoinTask<Long> submit = forkJoinPool.submit(tast);//提交任务Long sum = submit.get();long end = System.currentTimeMillis();System.out.println("sum="+sum+"时间: "+(end-start));}//使用Stream计算的人员public static void test03(){long start = System.currentTimeMillis();//Stream 并行流//求和long sum = LongStream.rangeClosed(0L, 10_0000_0000).parallel().reduce(0, Long::sum);long end = System.currentTimeMillis();System.out.println("sum="+sum+"时间: "+(end-start));}
}

2021-06-16 forkjion stream流式计算方法相关推荐

  1. JavaSE-常用类、Stream 流式计算

    JavaSE-常用类.Stream 流式计算 常用类 内置包装类 Integer String 类型转换 StringBuilder(JDK1.5) StringBuffer(JDK1.0) Date ...

  2. Lambda表达式和Stream流式编程

    写在前面 IDEA都默认是jdk11了,我这还写着jdk8的新特性呢,惭愧惭愧.其实在学校的时候,基本没咋用过Lambda表达式和Stream流式编程,但是在实习的时候,发现公司的代码好多这样写的,没 ...

  3. jdk8新特性(二)Stream流式操作

    1.流处理过程 2.Stream流式分类 Stream,IntStream,LongStream,DoubleStream 3.操作符 Stream 的一系列操作必须要使用终止操作,否者整个数据流是不 ...

  4. 函数式接口和Stream流式思想

    函数式接口和Stream 1. 函数式接口 1.1 函数式接口概述 利用接口操作语法格式,对于方法的声明作出二次封装!!!方法声明:权限修饰符 是否静态 返回值类型 方法名(形式参数列表);对于接口而 ...

  5. JDK8新特性(三):集合之 Stream 流式操作

    1.Stream流由来 首先我们应该知道:Stream流的出现,主要是用在集合的操作上.在我们日常的工作中,经常需要对集合中的元素进行相关操作.诸如:增加.删除.获取元素.遍历. 最典型的就是集合遍历 ...

  6. Java stream流式计算详解

    Java stream流式计算详解 1. Stream概述 1.1 Stream简介 1.2 Stream分类 2. Stream操作 2.1 Stream创建 2.2 Stream无状态操作 2.3 ...

  7. Java8新特性之Stream流式编程

    特地感谢鲁班大叔的分享,原学习地址:Java8 Stream流式编程爱 撸码就是快,流式编程好 代码传家宝 以下是学习过程整理的笔记 1.简介 Stream 流处理,首先要澄清的是 java8 中的 ...

  8. Stream流式计算

    一.什么是Stream流式计算(学习此之前,要先知道四大函数式接口) 1.常用的集合是为了存储数集,而对于集合数据的一些处理(像筛选集合数据等)可以使用Stream流来处理         2.jav ...

  9. java8/Stream流式计算从入门到精通/函数式编程实战

    摘要:Stream流式计算,本文讲解了Stream流式计算的概念,具体的使用步骤以及源码实现,最后讲解了使用Stream过程中需要注意的事项.Stream在公司项目中被频繁使用,在性能优化上具有广泛的 ...

  10. mysql流式计算,Stream流式计算

    Stream流式计算 什么是Stream流式计算 数据处理中不可缺少的两部分:存储 + 计算 集合.MySQL本质就是存储数据的,计算都应该交给流来操作! package com.kuang.stre ...

最新文章

  1. WinDocks发布Windows版本的Docker引擎
  2. Java学习_day009面向对象(oop):对象和类(下)
  3. [BUUCTF-pwn]——[BJDCTF 2nd]rci
  4. DATAGUARD STANDBY 服务器归档日志管理
  5. 电脑报警5声_电脑故障怎么判断 常见电脑故障诊断方法介绍【详解】
  6. win8 开发之旅(3) --五子棋游戏开发 前奏
  7. vc编译 matlab,精通VC与MATLAB联合编程——编译器的使用
  8. P3:线性分类、损失函数与梯度下降
  9. 微信蓝牙协议二:1800 or 18914E结尾和Varint压缩算法
  10. python之模块 os
  11. 23个适合logo设计的常用英文字体
  12. java word 文档合并_[原创]java合并word文件
  13. win10设置共享 Mac访问
  14. 台式计算机有哪些硬件,台式机包括什么
  15. cmd查看计算机用户密码,电脑WIFI密码哪里查看?Windows系统cmd命令一键查找历史已连接密码...
  16. 小学语文生字表3087字(人教版)
  17. 离职员工删库跑路,3个方法找回数据,有备无患
  18. 【Android P】 JobScheduler服务源码解析(二) ——框架解析
  19. 全屋Wi-Fi:一个谁也解决不好的痛点?
  20. 学校对计算机教师的检查要求,计算机学院2015-2016学年第二学期期中教学检查方案...

热门文章

  1. ThinkPHP去除url中的index.php
  2. Windows数据类型
  3. java swing窗口放置屏幕中央问题思考
  4. 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
  5. [备忘]windows下安装PHP环境php.ini-recommended 跟php.ini-dist 的差别之处
  6. django视图(views)
  7. [Vue] : vue-resource 实现 get, post, jsonp请求
  8. sql server 2012 复制数据库向导出现TransferDatabasesUsingSMOTransfer()异常
  9. junit搭配hamcrest使用
  10. Codeforces 505 A Mr. Kitayuta's Gift【暴力】