Java中的parallelStream

Java中的parallelStreamJava 中的 parallelStre 的底层实现为 ForkJoinPool 线程池是所有并行流共享的 线程池的线程数量和 CPU 核数一致 需要等待任务全部执行完毕 主线程 调用线程 才继续往下执行 注意 因为线程池是全局共享的 所以我们尽量不要在 parallelStre 中执行阻塞任务 否则会影响到整个系统中其他的 parallelStre 任务执行的 下面的案例中使用了 2 个新线程 在其中分别执行 parallelStre 线程 A 启动后 我们暂停 2 秒 目的是为了让线程 A 中的

一、概述

注意:因为线程池是全局共享的,所以我们尽量不要在 parallelStream 中执行阻塞任务,否则会影响到整个系统中其他的 parallelStream 任务执行的。

二、案例

 public static void main(String[] args) { 
    try { 
    // 构建list数据 List list = new ArrayList<>(20); for (int i = 0; i < 20; i++) { 
    list.add(i); } // 启动第一个线程,在里面执行 Thread t_A = new Thread(() -> { 
    list.parallelStream().forEach((i) -> { 
    System.out.println(i + "=====A=====" + Thread.currentThread().getName()); try { 
    Thread.sleep(10000); } catch (InterruptedException e) { 
    e.printStackTrace(); } }); }); t_A.start(); // 暂停2秒 Thread.sleep(2000); //执行第二个线程 Thread t_B = new Thread(() -> { 
    list.parallelStream().forEach((i) -> { 
    System.out.println(i + "=====B=====" + Thread.currentThread().getName()); }); }); t_B.start(); t_A.join(); t_B.join(); } catch (InterruptedException e) { 
    e.printStackTrace(); } } 
12=====A=====Thread-0 6=====A=====ForkJoinPool.commonPool-worker-9 7=====A=====ForkJoinPool.commonPool-worker-6 2=====A=====ForkJoinPool.commonPool-worker-2 8=====A=====ForkJoinPool.commonPool-worker-11 4=====A=====ForkJoinPool.commonPool-worker-4 5=====A=====ForkJoinPool.commonPool-worker-15 1=====A=====ForkJoinPool.commonPool-worker-13 3=====A=====ForkJoinPool.commonPool-worker-8 9=====A=====ForkJoinPool.commonPool-worker-1 0=====A=====ForkJoinPool.commonPool-worker-10 17=====A=====ForkJoinPool.commonPool-worker-3 12=====B=====Thread-1 14=====B=====Thread-1 13=====B=====Thread-1 11=====B=====Thread-1 10=====B=====Thread-1 17=====B=====Thread-1 19=====B=====Thread-1 18=====B=====Thread-1 16=====B=====Thread-1 15=====B=====Thread-1 6=====B=====Thread-1 5=====B=====Thread-1 8=====B=====Thread-1 9=====B=====Thread-1 7=====B=====Thread-1 2=====B=====Thread-1 4=====B=====Thread-1 3=====B=====Thread-1 1=====B=====Thread-1 0=====B=====Thread-1 13=====A=====ForkJoinPool.commonPool-worker-11 18=====A=====ForkJoinPool.commonPool-worker-3 15=====A=====ForkJoinPool.commonPool-worker-9 10=====A=====ForkJoinPool.commonPool-worker-4 19=====A=====ForkJoinPool.commonPool-worker-10 16=====A=====ForkJoinPool.commonPool-worker-1 11=====A=====ForkJoinPool.commonPool-worker-13 14=====A=====ForkJoinPool.commonPool-worker-8 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229393.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:48
下一篇 2026年3月16日 下午4:49


相关推荐

  • 海明校验码详解

    海明校验码详解什么是海明码 提出者 RichardHammi 海明码是一种多重 复式 奇偶检错系统 用于检错和纠错 如何确定校验码其实计算海明校验码的值只需三步 对于原始数据信息位 m 计算得出需要的 k 位校验码如何确定最小的校验位数 kk 假设原有信息为 mm 位 则和校验位加起来长度有 m km k 校验位数 k 可以确定 2k2 k 个状态 这些状态中必有一个其所有奇偶测试都是真的 于是

    2026年3月26日
    2
  • SQL注入攻击原理及防御策略

    SQL注入攻击原理及防御策略一 什么是 SQL 注入 SQL 注入 一般指 web 应用程序对用户输入数据的合法性没有校验或过滤不严 攻击者可以在 web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句 在不知情的情况下实现非法操作 以此来实现欺骗数据库服务器执行非授权的任意查询 从而进一步得到相应的数据信息 总的来说就是 攻击者通过系统正常的输入数据的功能 输入恶意数据 而系统又未作任何的校验 直接信任了用户输入 使得恶意输入改变原本的 SQL 逻辑或者执行了额外的 SQL 脚本达 从而造成了 SQL 注入攻击 二 SQL 注入的危害及

    2026年3月16日
    2
  • ‘hibernate.dialect’ must be set when no Connection avalable’

    ‘hibernate.dialect’ must be set when no Connection avalable’

    2021年9月10日
    52
  • AUC的公式_蔡勒公式

    AUC的公式_蔡勒公式AUC:随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。开始抽样:在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。计算:(一)2个正样本:C,D2个负样本:A,B样本对:(C,A)(C,B…

    2022年10月21日
    5
  • 时滞/延迟微分方程(delay-differential equation)

    时滞/延迟微分方程(delay-differential equation)问题原来微分方程里面还有一类比较特殊复杂的。delaydifferentialequation(维基).翻了几篇相关的硕士和博士论文,感觉用处不大。不过,用软件做出来效果比较漂亮。与之相关的,分支或分叉(bifurcation)是一个似乎在包括迭代的动力系统里面都普遍的一个概念。Wolfram关于这个概念的文档延迟微分方程是一种微分方程,其在当前时间的时间导数取决于它在以往时间的解

    2022年9月30日
    5
  • R语言实战笔记–第八章 OLS回归分析

    R语言实战笔记–第八章 OLS回归分析R 语言实战笔记 第八章 OLS 回归分析标签 空格分隔 R 语言回归分析 首先 是之前的文章 数理统计里面的简单回归分析 这里简单回顾一下 简单回归分析的原理 最小二乘法 即使回归函数与实际值之差的平方和最小 所以它在 R 中也称为 OLS 模型 它能实现的回归分析为简单线性回归 多项式回归以及多元线性回归 模型中的称谓 自变量 解释变量及预测变量为 x 因变量 结果变量 效标变量及预测响

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号