【JDK 8-集合框架进阶】6.1 parallelStream 并行流

一、parallelStream 并行流

1.1 串行 和 并行的区别

> 执行结果

二、问题

2.1  paralleStream 并行是否一定比 Stream 串行快?

2.2 是否可以都用并行?

> 报错 

三、实战

> 执行结果

四、总结


一、parallelStream 并行流

  • 多线程并发处理,速度快

  • fork/join 框架提供了并发执行能力

  • 底层原理:线程池(ForkjoinPool) 维护一个线程队列,将父任务拆分成子任务

1.1 串行 和 并行的区别

    public static void main(String[] args) {List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9);System.out.println(">> 【串行 stream()】单线程");list.stream().forEach(System.out::println);System.out.println(">> 【并行 parallelStream()】多线程");list.parallelStream().forEach(System.out::println);}
> 执行结果

二、问题

2.1  paralleStream 并行是否一定比 Stream 串行快?

  • 错误,数据量少的情况,可能串行更快,ForkJoin会耗性能

  • 多数情况下并行比串行快

2.2 是否可以都用并行?

  • 不行,部分情况会有线程安全问题,parallelStream里面使用的外部变量,比如集合一定要使用线程安全集合,不然就会引发多线程安全问题

        for (int i = 0; i < 10; i++) {List list1 = new ArrayList();IntStream.range(0,100).parallel().forEach(list1::add);System.out.println(list1.size());}
> 报错 

三、实战

  • 向list插入100个随机[0,100]的int,重复10次
        for (int i = 0; i < 10; i++) {List list1 = new CopyOnWriteArrayList();IntStream.range(0,100).parallel().forEach(list1::add);System.out.println(list1.size());}
> 执行结果

四、总结

一般 list.size()

  • 几十个:使用 Stream

  • 几百个以上:paralleStream  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙是一个怎么样的操作系统,真的是安卓套壳吗?

从鸿蒙项目正式推出以来&#xff0c;就一直有各自声音&#xff0c;有看好的&#xff0c;认为鸿蒙的出现将会成为一个智能终端设备操作系统的框架和平台&#xff0c;促进万物互联产业的繁荣发展&#xff1b;也有的人在唱衰&#xff0c;觉得鸿蒙发展不起来&#xff0c;甚至认为鸿…

Nginx手动编译、安装超超详解

文章目录 一、为什么要手动编译Nginx二、下载Nginx1、官网2、下载至linux服务器3、源码目录分析4、编译安装5、安装目录 三、启动1、启动2、访问一下80端口 一、为什么要手动编译Nginx Nginx安装除了编译以外&#xff0c;我们还可以直接用操作系统上自带的工具比如说yum、apt-…

java框架-Spring-事务

配置 配置事务管理器方法&#xff1a; Beanpublic PlatformTransactionManager platformTransactionManager(){return new DataSourceTransactionManager();}原理

Vue模板语法(下)

文章目录 一、事件处理1.1 监听事件​1.2 事件修饰符1.3 按键修饰符​1.4 实例 二、表单综合案例三、自定义组件 一、事件处理 1.1 监听事件​ 我们可以使用 v-on 指令 (简写为 ) 来监听 DOM 事件&#xff0c;并在事件触发时执行对应的 JavaScript。用法&#xff1a;v-on:cli…

第一次作业题解

第一次作业题解 P5717 【深基3.习8】三角形分类 思路 考的是if()的使用,还要给三条边判断大小 判断优先级&#xff1a; 三角形&#xff1f;直角、钝角、锐角等腰等边 判断按题给顺序来 代码 #include <stdio.h> int main() {int a 0, b 0, c 0, x 0, y 0, z 0…

智慧公厕云管理平台:筑牢云上“城市公共厕所一张网”

在现代城市中&#xff0c;公共厕所是人们日常生活中不可或缺的一部分。然而&#xff0c;过去的公共厕所管理方式往往效率低下&#xff0c;维护困难&#xff0c;给市民带来了不便。为了解决这一问题&#xff0c;智慧公厕应运而生&#xff0c;赋予传统公共厕所智慧化的管理效能。…

D. A Simple Task

Problem - D - Codeforces 思路&#xff1a;这个题就是求环的数量&#xff0c;通过数据范围的大小&#xff0c;我们可以想到用状压dp来做&#xff0c;因为只有19个点&#xff0c;我们可以将环的路径进行状态压缩&#xff0c;用一个二进制数表示环&#xff0c;当某一位为1时表示…

qt+ffmpeg视频播放器实现音视频倍速功能

目录 一、前言 二、开发环境参考源码 开发环境&#xff1a; 参考源码&#xff1a; 三、添加倍速控件 四、倍速调节代码 五、视频倍速调节 六、音频倍速方案一 七、音频倍速方案二 八、最终效果 九、参考文献 十、结语 一、前言 参考了云天之巅的FFMPEG Qt视频播放器…

蓝桥杯每日一题2023.9.22

4960. 子串简写 - AcWing题库 题目描述 题目分析 原本为纯暴力但是发现会超时&#xff0c;可以加入前缀和&#xff0c;从前往后先记录一下每个位置c1出现的次数 再从前往后扫一遍&#xff0c;如果遇到c2就将答案加上此位置前的所有c1的个数&#xff08;直接加上此位置的前缀…

csdn未经允许将我的文章设置成vip收费

以前在csdn写了一些笔记&#xff0c;后来不用csdn了&#xff0c;想着留下这些笔记或多或少能帮助其他初学者&#xff0c;就没管它。结果csdn把文章设置成收费了&#xff0c;这个收费不是我本人弄的&#xff0c;是csdn弄的&#xff01;我现在只能把这些文章删除掉了。

FPGA设计时序约束二、输入延时与输出延时

目录 一、背景 二、set_input_delay 2.1 set_input_delay含义 2.2 set_input_delay参数说明 2.3 使用样例 三、set_output_delay 3.1 set_output_delay含义 3.2 set_output_delay参数说明 3.3 使用样例 四、样例工程 4.1 工程代码 4.2 时序报告 五、参考资料 一、…

SpringCloud Alibaba 入门到精通 - Sentinel

SpringCloud Alibaba 入门到精通 - Sentinel 一、基础结构搭建1.父工程创建2.子工程创建 二、Sentinel的整合SpringCloud1.微服务可能存在的问题2.SpringCloud集成Sentinel搭建Dashboard3 SpringCloud 整合Sentinel 三、服务降级1 服务降级-Sentinel2 Sentinel 整合 OpenFeign3…

SW利用点光源来校核

先要建立坐标系&#xff0c;然后查这个坐标系的绝对坐标 然后删除其他光源&#xff0c;把环境光源降低最小 最后添加点光源&#xff0c;位置在之前查的坐标点

【密评】商用密码应用安全性评估从业人员考核题库(一)

商用密码应用安全性评估从业人员考核题库&#xff08;一&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 1 单项选择题 党的二十大主题是&#xff1a;高举中国特色社会主义伟…

modbusTCP【codesys】

1添加控制器【控制器】&#xff1a; 右击左侧树型菜单【Device】→选择【添加设备】&#xff0c;在弹出对话框中下拉选择【以太网适配器】下的【Ethernet】&#xff0c;最后点击【添加设备】。 注意固件能支持的版本。我的是3.5.17 2添加主站【主站】 2添加从站【从站】 双…

OpenAI ChatGPT API 文档之 Embedding

译者注&#xff1a; Embedding 直接翻译为嵌入似乎不太恰当&#xff0c;于是问了一下 ChatGPT&#xff0c;它的回复如下&#xff1a; 在自然语言处理和机器学习领域&#xff0c;"embeddings" 是指将单词、短语或文本转换成连续向量空间的过程。这个向量空间通常被称…

目标追踪学习经验总结

标题目标追踪算法学习经验总结   最近对目标追踪算法进行了学习&#xff0c;以下是我的学习经验&#xff0c;如有不对之处&#xff0c;欢迎大家指正。 1、简介 1.1 定义 目标跟踪是通过分析视频图片序列&#xff0c;对检测出的各个候选目标区域实施匹配&#xff0c;定位出这…

【面试八股】IP协议八股

IP协议八股 子网掩码的作用为什么IP协议需要分片IP协议什么时候需要分片IP协议是怎么进行分片的那么IP协议是如果进行标识属于同一个分片呢&#xff1f;TCP协议和UDP协议将数据交给IP协议之后&#xff0c;是否需要分片传输&#xff1f; 子网掩码的作用 用来标识网络号和主机号…

029-从零搭建微服务-消息队列(一)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;mingyue: &#x1f389; 基于 Spring Boot、Spring Cloud & Alibaba 的分布式微服务架构基础服务中心 源…

Java基础常考知识点(基础、集合、异常、JVM)

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; Java基础常考知识点…