java8新特性--并行流与串行流
并行流与串行流
- 1、概述
- 2、实例
1、概述
并行流就是把一个内容分成多个数据块,并用不同的线程分 别处理每个数据块的流。
Java 8 中将并行进行了优化,我们可以很容易的对数据进行并 行操作。Stream API 可以声明性地通过 parallel() 与 sequential() 在并行流与顺序流之间进行切换。
2、实例
若我们需要计算从0到1000000000L的累计和,若是普通的从0加到1000000000L,势必对cpu的利用率不高,我们做个测试
1、普通的累加和:
long start = System.currentTimeMillis();long sum = 0L;for (long i = 0L; i <= 1000000000L; i++) {sum += i;}System.out.println(sum);long end = System.currentTimeMillis();System.out.println("耗费的时间为: " + (end - start));
2、采用并行流计算
long start = System.currentTimeMillis();Long sum1 = LongStream.rangeClosed(0L, 1000000000L).parallel().reduce(0,Long::sum);System.out.println(sum1);long end = System.currentTimeMillis();System.out.println("耗费的时间为: " + (end - start));
从结果来看,差距并不是很大,有时候并行流执行时间比普通的累计还长,是因为并行流执行的时候会递归将计算进行差分,最后再将拆分的结果合并,会消耗掉一部分时间。所以,可以增大数据量去测试,效果就会很明显。
加大数据量,计算从0到10000000000L
1、普通累加和:
2、并行流计算
可以看到,数据已经溢出了,但是我们观察消耗时间可以发现,数据量越大,并行流的优势越明显
java8新特性--并行流与串行流相关推荐
- java8新特性【Lambda、Stream API、Optional、Date Time API 、并行流与串行流】
文章目录 Lambda 表达式 Lambda 表达式的基础语法 方法引用 Lambda 表达式需要"函数式接口"的支持 Java8 内置的四大核心函数式接口 Stream API ...
- java+串行和并行的区别_Java8新特性_并行流与串行流
1.Java8中forkjoin框架使用更加简单了 1.7中的ForkJoin框架编码复杂且容易出错,而8中的编码则十分简单 JDK1.7时开发者需要自定义计算类,如 package com.atgu ...
- 锁与并发工具包与线程池与LockSupport与Fork/Join框架与并行流串行流与阻塞队列与JPS,jstack命令查看死锁查看线程状态与AQS个人笔记九
朝闻道,夕死可矣 本文共计 86564字,估计阅读时长1小时 点击进入->Thread源码万字逐行解析 文章目录 本文共计 86564字,估计阅读时长1小时 一锁 二Java中13个原子操作类 ...
- Java8新特性整理篇
文章目录 概述 Lambda表达式 函数式(Functional)接口 Stream API Optional类 概述 Java 8是oracle公司于2014年3月发布,可以看成是自Java 5 以 ...
- 【Java8新特性】关于Java8的Stream API,看这一篇就够了!!
写在前面 Java8中有两大最为重要的改变.第一个是 Lambda 表达式:另外一个则是 Stream API(java.util.stream.*) ,那什么是Stream API呢?Java8中 ...
- Java8 新特性简介
Java8是2014年发布的,至今也已经有快三年的时间了,之前虽然有学习过,但是学的比较零散,不成系统,而且也没有覆盖到Java8所有的特性. 由于公司已经使用了JDK1.8,所以工作中能使用Java ...
- 放大招了,肝了一篇8万字的Java8新特性总结,赶快收藏
大家好,我是冰河~~ 说实话,肝这篇文章花了我一个月的时间,关于Java8的新特性全在这儿了,建议先收藏后阅读. Java8有哪些新特性? 简单来说,Java8新特性如下所示: Lambda表达式 函 ...
- JAVA8新特性的总结
java8的改变 Lambda 表达式 函数式接口 方法引用 / 构造器引用 Stream API 接口中的默认方法 / 静态方法 新时间日期 API 其他新特性 新特性 速度更快 代码更少 强大的 ...
- JDK8新特性:Lambda表达式、Stream流、日期时间工具类
重要特性: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号. 可选的大括号:如果主体包含了一个语句,就不需要大括号. ...
最新文章
- 学习MongoDB(Troubleshoot Replica Sets) 集群排除故障
- Linux脚本获取日期,Shell脚本获取格式化日期与时间
- 网工路由基础(5)ISIS协议
- MySQL也有潜规则 – Select 语句不加 Order By 如何排序?
- 【科普】让人头秃的理论:什么是“奥卡姆剃刀”原理?
- 微软全部正版软件下载地址和序列号索取
- 如何在SAP CRM WebClient UI上打开外部链接
- JavaScript对象的创建总结
- 【转】itk、vtk、qt 显示dicom 数据
- 沟通技巧系列 - 积极和移情倾听
- 解决:Google代码achartengine曲线代码报错问题(转)
- Python+matplotlib绘制多门课程学生成绩分布饼状图
- Windows查看所有的端口
- PDF Expert 2.5.13 极致的 PDF 阅读标注工作体验
- eBay运营模式有哪些
- PUN ☀️六、机器人基础设置:运动、相机、攻击与生命值
- 【绝知此事要躬行】线性表之链表OJ(上)
- icloud验证失败连接服务器时出现问题,登录 iCloud 提示验证失败连接到服务器时出现问题怎么办及苹果iPhone手机安装两个微信教程...
- 语音识别_ML-KWS-for-MCU_资料整理
- catia中画螺杆 螺纹
热门文章
- 工具 网络游戏封包基础
- Codeforces 1428E Carrots for Rabbits 贪心
- Android studio 模拟器中只能输入英文 如何输入中文
- 河北北方学院计算机二级考试安排,2021年河北北方学院开学时间入学考试及新生转专业相关流程说明...
- win10开启远程桌面连接的的一波三折——无法连接到远程计算机、你的凭据不工作
- Objective-c 学习笔记(二)
- 全国超级计算机排名500强每年发布几次,全球超级计算机500强榜单发布,中国排第几?...
- exist优化 in mysql_MySQL 子查询优化[IN/EXISTS]--smei join
- 什么是jQuery?jQuery有哪些优势?
- TCPUDP测试工具 1.02 绿色版 - 绿色软件联盟 - 可定时发送数据