当前位置: 首页 > news >正文

【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  

相关文章:

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

一、parallelStream 并行流 1.1 串行 和 并行的区别 > 执行结果 二、问题 2.1 paralleStream 并行是否一定比 Stream 串行快? 2.2 是否可以都用并行&#xff1f; > 报错 三、实战 > 执行结果 四、总结 一、parallelStream 并行流 多线程并发处理&#xff…...

C语言中结构体,枚举,联合相关介绍

本次重点&#xff1a; 1、结构体 &#xff1a; &#xff08;1&#xff09;结构体类型的声明 &#xff08;2&#xff09;结构的自引用 &#xff08;3&#xff09;结构体变量的定义和初始化 &#xff08;4&#xff09;结构体内存对齐 &#xff08;5&#xff09;结构体传参 …...

【干货】GNSS连续运行基准站网

文章目录 01 ​概述02 基准站建设03 数据中心04 数据通信网络 01 ​概述 1. 基准站网的组成 卫星连续运行基准站网&#xff08;Continuously Operating Reference Stations&#xff0c;缩写 CORS&#xff09;是由若干连续运行基准站及数据中心、数据通信网络组成的&#xff0…...

如何使用iPhone15在办公室观看家里电脑上的4k电影,实现公网访问本地群晖!

如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f; 文章目录 如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f;1.使用环境要求&#xff1a;2.下载群晖videostation&#xff1a;3.公网访问本地群晖videostation中的电影&#xff1a;4.公网条件下使用电脑…...

LeetCode之26.删除有序数组中的重复项和80.删除有序数组中的重复项II(C++)

文章目录 0 引言1 删除有序数组中的重复项1.1 解题方法1.2 C代码 2 删除有序数组中的重复项II2.1 解题方法2.2 C代码 0 引言 本文主要记录如何解决LeetCode中数组和字符串类别中的26.删除有序数组中的重复项&#xff08;简单&#xff09;及80.删除有序数组中的重复项II &#…...

linux驱动之input子系统简述

文章目录 一、什么是input子系统二、内核代码三、代码分析 一、什么是input子系统 Input驱动程序是linux输入设备的驱动程序&#xff0c;我们最常见的就按键&#xff0c;触摸&#xff0c;插拔耳机这些。其中事件设备驱动程序是目前通用的驱动程序&#xff0c;可支持键盘、鼠标…...

嵌入式裸机架构的探索与崩塌

为什么会想着探索下嵌入式裸机的架构呢&#xff1f;是因为最近写了一个项目&#xff0c;项目开发接近尾声时&#xff0c;发现了一些问题&#xff1a; 1、项目中&#xff0c;驱动层和应用层掺杂在一起&#xff0c;虽然大部分是应用层调用驱动层&#xff0c;但是也存在驱动层调用…...

MySQL高级语句(第二部分)

MySQL高级语句(第二部分)一、视图表 create view1、视图表概述2、视图表能否修改&#xff1f;&#xff08;面试题&#xff09;3、基本语法3.1 创建3.2 查看3.3 删除 4、通过视图表求无交集值 二、case语句三、空值(null) 和 无值(’ ) 的区别四、正则表达式五、存储过程1、简介…...

HTML计时事件(JavaScript)网页电子钟+网页计时器

setTimeout("函数","未来指定毫秒后调用函数"); clearTimeout(setTimeout("函数","未来指定毫秒后调用函数")); <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title>…...

使用群晖实现Videostation电影的大容量存储及分享教程

文章目录 1.使用环境要求2.制作视频分享链接3.制作永久固定视频分享链接 李哥和他的女朋友是一对甜蜜的情侣&#xff0c;但不幸的是&#xff0c;由于工作原因&#xff0c;他们目前分隔两地&#xff0c;无法常常亲密相伴。 这个距离让李哥特别怀念和女朋友一起在电影院观看电影的…...

后端大厂面试-15道题

1. 说说计算机存储结构 计算机存储结构通常包括这几个层次&#xff1a; 主存储器&#xff08;Main Memory&#xff09;&#xff1a;也称为内存&#xff08;RAM&#xff0c;Random Access Memory&#xff09;&#xff0c;主要用于存储当前正在执行的程序和数据。它是计算机中最…...

C++: 冒泡排序(Bubble Sort)

假设你有一列由数字组成的玻璃珠&#xff0c;这些珠子的重量不同&#xff0c;你希望将它们按照重量从轻到重排列。你会这样做&#xff1a; 从左到右&#xff0c;比较相邻的两颗珠子的重量。如果左边的珠子比右边的珠子重&#xff0c;就交换它们的位置。然后&#xff0c;继续向…...

跨域的解决方案

文章目录 概念一、什么是跨域问题二、为什么会发生跨域问题三、跨域解决方案1、JSONP2、添加响应头3、Spring注解CrossOrigin4、配置文件&#xff08;常用&#xff09;5、nginx跨域 概念 一、什么是跨域问题 前端调用的后端接口不属于同一个域&#xff08;域名或端口不同&…...

如何使用Java语言判断出geek是字符串参数类型,888是整数参数类型,[hello,world]是数组参数类型,2.5是双精度浮点数类型?

如何使用Java语言判断出geek是字符串参数类型&#xff0c;888是整数参数类型&#xff0c;[hello,world]是数组参数类型&#xff0c;2.5是双精度浮点数类型&#xff1f; Java是一种静态类型的编程语言&#xff0c;这意味着我们需要在编译时为变量指定具体的类型。但是&#xff…...

9.20华为机试-后端

1、丢失报文的位置 某通信系统持续向外发送报文&#xff0c;使用数组 nums 保存 n个最近发送的报文&#xff0c;用于在报文未达到对端的情况下重发。报文使用序号 sn 表示&#xff0c;序号 sn 按照报文发送顺序从小到大排序&#xff0c;相邻报文 sn 不完全连续且有可能相同。报…...

LC926. 将字符串翻转到单调递增(JAVA - 动态规划)

将字符串翻转到单调递增 题目描述动态规划 题目描述 难度 - 中等 LC926. 将字符串翻转到单调递增(JAVA - 动态规划) 如果一个二进制字符串&#xff0c;是以一些 0&#xff08;可能没有 0&#xff09;后面跟着一些 1&#xff08;也可能没有 1&#xff09;的形式组成的&#xff0…...

【高阶数据结构】哈希的应用 {位图;std::bitset;位图的应用;布隆过滤器;布隆过滤器的应用}

一、位图 1.1 位图概念 面试题 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。【腾讯】 遍历查找&#xff1a;内存中无法存放40亿个整数&#xff08;约占内存15-16G&#xff09;&#xff1b;时间复杂…...

金融生产存储亚健康治理:升级亚健康 3.0 ,应对万盘规模的挑战

随着集群规模的不断扩大&#xff0c;硬盘数量指数级上升&#xff0c;信创 CPU 和操作系统、硬盘多年老化、物理搬迁等多种复杂因素叠加&#xff0c;为企业的存储亚健康管理增加了新的挑战。 在亚健康 2.0 的基础上&#xff0c;星辰天合在 XSKY SDS V6.2 实现了亚健康 3.0&#…...

C语言自定义类型讲解:结构体,枚举,联合(2)

&#x1f435;本篇文章将会对位段、枚举和联合的相关知识进行讲解 1. 位段&#x1f4da; 1.1 什么是位段 位段的声明和结构体类似&#xff0c;但是有两点不同&#xff1a; 1.位段的成员必须是int&#xff0c;unsigned int&#xff0c;signed int (C99之后也可以是其他成员&am…...

AI编程助手 Amazon CodeWhisperer 全面解析与实践

目录 引言Amazon CodeWhisperer简介智能编程助手智能代码建议代码自动补全 提升代码质量代码质量提升安全性检测 支持多平台多语言 用户体验和系统兼容性用户体验文档和学习资源个性化体验系统兼容性 功能全面性和代码质量功能全面性代码生成质量和代码安全性 CodeWhisperer的代…...

C++ Lambda表达式实战指南:从捕获策略到现代C++最佳实践

1. Lambda表达式基础&#xff1a;从语法到核心概念 第一次接触C Lambda表达式时&#xff0c;我被它奇怪的方括号语法弄得一头雾水。直到在真实项目中用它简化了回调函数&#xff0c;才真正体会到它的威力。Lambda本质上就是个"即用即扔"的函数对象&#xff0c;特别适…...

从零构建μC/OS-II硬件抽象层:以ARM7 LPC2292为例详解移植核心

1. 项目概述与核心思路十年前&#xff0c;我第一次把μC/OS-II从一个ARM7开发板搬到另一个不同型号的ARM7芯片上&#xff0c;光是改启动文件和中断向量表就折腾了一周。那时候我就想&#xff0c;要是有一套标准化的“中间层”&#xff0c;能把芯片底层的差异给屏蔽掉&#xff0…...

TalkingHeads开源项目:基于扩散模型的AI人脸说话视频生成技术详解

1. 项目概述&#xff1a;当AI学会“眉目传情” 最近在折腾一个挺有意思的开源项目&#xff0c;叫TalkingHeads。简单来说&#xff0c;它能让一张静态的人脸照片“活”过来&#xff0c;不仅能根据你输入的音频或文本生成口型同步的说话视频&#xff0c;还能让视频里的人做出各种…...

用Logisim从零搭建MIPS CPU:我的计组课设通关实录(附完整电路文件)

从零构建MIPS CPU&#xff1a;一位计算机系学生的Logisim实战指南 1. 为什么选择Logisim搭建MIPS CPU 作为一名计算机专业的学生&#xff0c;第一次接触计算机组成原理课程设计时&#xff0c;面对"用Logisim搭建MIPS CPU"这个任务&#xff0c;我既兴奋又忐忑。兴奋的…...

Go语言微服务架构设计:从理论到实践

Go语言微服务架构设计&#xff1a;从理论到实践 引言 微服务架构已经成为现代软件架构的主流模式。Go语言凭借其高性能、轻量级和并发能力&#xff0c;成为构建微服务的理想选择。本文将深入探讨微服务架构的核心概念、Go语言实现策略&#xff0c;以及如何构建可扩展、高可用的…...

终极指南:如何在5分钟内掌握SketchUp STL插件实现3D打印

终极指南&#xff1a;如何在5分钟内掌握SketchUp STL插件实现3D打印 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl SketchUp…...

DDrawCompat v0.6.0:终极指南,让经典游戏在现代Windows系统完美重生

DDrawCompat v0.6.0&#xff1a;终极指南&#xff0c;让经典游戏在现代Windows系统完美重生 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.…...

开发团队如何利用Taotoken实现API Key的统一管理与访问审计

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 开发团队如何利用Taotoken实现API Key的统一管理与访问审计 对于中大型开发团队而言&#xff0c;大模型API的引入在提升效率的同时…...

如何在macOS上免费解锁百度网盘SVIP下载限速?终极解决方案

如何在macOS上免费解锁百度网盘SVIP下载限速&#xff1f;终极解决方案 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS BaiduNetdiskPlugin-macOS是一款…...

阿里图像复原验证码识别

一、简介 这个就是阿里的图像还原验证码&#xff0c;他是从一个图片中任意抠出一个物品&#xff0c;可能是蜡烛、车轮、盘子、瓶子、盖子、扣子等等。然后让你通过鼠标拖动的方式&#xff0c;把物品拖到对应的位置上&#xff0c;完成图像复原验证。 这个验证码还有一个非常变态…...