parallel循环java_Java 8 lambda stream forEach parallel 等循环与Java 7 for each 循环耗时测试…[通俗易懂]

parallel循环java_Java 8 lambda stream forEach parallel 等循环与Java 7 for each 循环耗时测试…[通俗易懂]Java8里面的stream有串行流和并行流之分。说高级的stream就是那个并行流。下面是那个并行流的简单实现。只要是继承Collection类的都可以这么用。list.stream().parallel()list.parallelStream()先看代码和运行结果,再解释一下,这个并行串行流之间的差别。packagecom.lxk.lambdaTest;importcom.goog…

大家好,又见面了,我是你们的朋友全栈君。

Java 8 里面的stream 有串行流和并行流之分。

说高级的stream就是那个并行流。下面是那个并行流的简单实现。只要是继承Collection类的都可以这么用。

list.stream().parallel()

list.parallelStream()

先看代码和运行结果,再解释一下,这个并行串行流之间的差别。

package com.lxk.lambdaTest;

import com.google.common.collect.Lists;

import java.util.List;

/**

* 测试性能(Java 8 的循环和Java 7 的循环耗时的对比测试)

*

* Created by lxk on 2017/8/31

*/

public class Performance {

public static void main(String[] args) {

List list = getLoopList();

normalBeforeLoop(list);

normalAfterLoop(list);

notNormalAfterLoop(list);

}

private static void notNormalAfterLoop(List list) {

long a = System.currentTimeMillis();

list.stream().parallel().forEach(System.out::print);

System.out.println(” list.stream().parallel().forEach 执行耗时 : ” + (System.currentTimeMillis() – a) / 1000f + ” 秒 “);

}

private static void normalAfterLoop(List list) {

long a = System.currentTimeMillis();

list.stream().forEach(System.out::print);

System.out.println(” list.stream().forEach 执行耗时 : ” + (System.currentTimeMillis() – a) / 1000f + ” 秒 “);

a = System.currentTimeMillis();

list.forEach(System.out::print);

System.out.println(” list.forEach 执行耗时 : ” + (System.currentTimeMillis() – a) / 1000f + ” 秒 “);

}

private static void normalBeforeLoop(List list) {

long a = System.currentTimeMillis();

for (String s : list) {

System.out.print(s);

}

System.out.println(” for each 执行耗时 : ” + (System.currentTimeMillis() – a) / 1000f + ” 秒 “);

}

private static List getLoopList() {

List list = Lists.newArrayList();

for (int i = 0; i < 10000; i++) {

list.add(“item ” + i);

}

return list;

}

}

下面是代码运行结果:

0818b9ca8b590ca3270a3433284dd417.png

好,关于,那个并行和串行的流的差别,可以看到啦。

并行的流,在循环的时候,就不是 1 – 9999 挨着输出。而是,看多核的心情。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年7月19日 上午6:16
下一篇 2022年7月19日 上午6:36


相关推荐

  • SQL经典实例(四)插入、更新和删除[通俗易懂]

    SQL经典实例(四)插入、更新和删除[通俗易懂]SQL经典实例(四)插入、更新和删除

    2022年4月20日
    53
  • 图文详解 MapReduce 工作流程

    图文详解 MapReduce 工作流程前言本文隶属于专栏 1000 个问题搞定大数据技术体系 该专栏为笔者原创 引用请注明来源 不足和错误之处请在评论区帮忙指出 谢谢 本专栏目录结构和参考文献请见 1000 个问题搞定大数据技术体系正文 MapReduce 编程模型 MapReduce 编程模型开发简单且功能强大 专门为并行处理大规模数据量而设计 接下来 通过一张图来描述 MapReduce 的工作过程 如图所示 关于 MapReduce 编程模型的更多细节请参考我的这篇博客 MapReduce 编程模型到底是怎样的 整体流程

    2026年3月18日
    2
  • 格灵深瞳新作!S-Agent智能体平台引领AI应用新潮流

    格灵深瞳新作!S-Agent智能体平台引领AI应用新潮流

    2026年3月15日
    3
  • python安装包国内地址

    python安装包国内地址python 从国外源下载安装包 会特别慢 还会经常出现下载失败的情况 所以我们要从国内源下载安装包 1 常用的国内源新版 ubuntu 要求使用 https 源 要注意 清华 https pypi tuna tsinghua edu cn simple 阿里云 http mirrors aliyun com pypi simple 中国科技大学 https pypi mirrors ustc edu cn simple 华中理工大学 http pypi hustunique com 山东理

    2026年3月20日
    2
  • Pycharm 2021.7 EAP的激活码[免费获取]

    (Pycharm 2021.7 EAP的激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    116
  • Linux下Jboss安装使用+Jboss部署脚本「建议收藏」

    Linux下Jboss安装使用+Jboss部署脚本「建议收藏」Jboss是JavaEE应用服务器(就像Apache是web服务器一样),专门用来运行JavaEE程序的。JBoss的运行需要JAVA环境的支持,所以我们首先安装JDK。本章环境:系统:CentOSLinuxrelease7.9.2009前期工作准备:关闭防火墙关闭selinux[root@server-jboos~]#systemctlstopfirewalld.service[root@server-jboos~]#systemctldistablefir

    2026年4月14日
    9

发表回复

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

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