java~ForkJoinPool分而致之处理大数据

ForkJoinPool的思想,是将大的集合进行拆分,计算处理之后,再把结果合并,这体现了多核时代的并行计算能力。

集合拆分成元素

  List<integer> maps = Lists.newArrayList();
  int count = 100;
  for (int i = 0; i < count; i++) {
      maps.add(i);
  }
  StopWatch stopWatch = new StopWatch();
  stopWatch.start();
  List<integer> odds = new ArrayList<>();
  ForkJoinPool forkJoinPool = new ForkJoinPool(10);
  forkJoinPool.submit(() -> {
      maps.parallelStream()
              .forEach(map -> {
                  if (map % 2 == 0) {
                      odds.add(map);
                      try {
                          Thread.sleep(1);
                      } catch (InterruptedException e) {
                          throw new RuntimeException(e);
                      }
                  }
              });

  }).join();
  stopWatch.stop();
  logger.info(stopWatch.prettyPrint());
</integer></integer>

大集合拆分成集合

ListUtil.split使用了hutool框架,5.4.5版本提供了集合拆分功能

//fork&#x96C6;&#x5408;
List<list<integer>> jihe = new ArrayList<>();
jihe = ListUtil.split(maps, 9);
List<list<integer>> finalJihe = jihe;
forkJoinPool.submit(() -> {
    finalJihe.parallelStream()
            .forEach(map -> {
                logger.info("map size:{}", map.size());
            });
}).join();
</list<integer></list<integer>

Original: https://www.cnblogs.com/lori/p/16532665.html
Author: 张占岭
Title: java~ForkJoinPool分而致之处理大数据

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576076/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 1_Html

    一. 引言 1.1 HTML概念 网页, 是网站中的一个页面, 是构成网站的基本元素, 是承载各种网站应用的平台. 通俗的说, 网站就是由网页组成的, 通常我们看到的网页都是以ht…

    数据库 2023年6月11日
    064
  • 12、HSSFWorkbook实现多张sheet导出

    转载自 一、封装一个通用的装载数据的实体类: import lombok.AllArgsConstructor; import lombok.Data; import lombok…

    数据库 2023年6月6日
    0100
  • Markdown语法浅学

    typora语法使用 1.字体 *斜体*,_斜体_ **粗体** ***加粗斜体*** ~~删除线~~ 下划线 ***分割线 , — 2.标题 一级标题 ## 二级标题 ###…

    数据库 2023年6月11日
    080
  • Python接口自动化——文件上传/下载接口

    转载请注明出处❤️ 你好,我是测试蔡坨坨。 我们在做接口自动化测试的时候,经常会碰到 &#x6587;&#x4EF6;&#x4E0A;&#x4F20…

    数据库 2023年6月11日
    071
  • Linux 目录挂载服务

    Linux 服务器挂载文件目录通常有三种形式,手动挂载、自动挂载、Autofs 自动挂载,下面对这三个挂载做一下介绍,接受一下这三个区别以及使用场景: 准备服务器和客户端: ser…

    数据库 2023年6月14日
    097
  • ArrayLIst在指定位置插入的内部实现

    今天看到一个问题:ArrayList的add方法有两种使用,那么add到指定位置内部是怎么实现的? 发现自己对这块地方不熟悉,所以立马去看了ArrayList下的源码 // 第一个…

    数据库 2023年6月9日
    076
  • Redis学习(1)—Redis概述

    什么是NoSQL NoSQL:Not Only SQL,意思不仅仅是SQL,它是属于 非关系型数据库。那什么是关系型数据库?数据结构是一种有行有列的数据库。 NoSQL数据库是为了…

    数据库 2023年6月14日
    071
  • Java基础十—JavaIO

    CPU指令与内核态、用户态 在操作系统中,CPU负责执行指令,这些指令有些来自应用程序,有些是来自底层系统。有些指令是非常危险的,如清除内存,网络连接等等,如果错误调用的话有可能导…

    数据库 2023年6月6日
    0105
  • 什么是回表,怎么解决?

    表tbl有a,b,c三个字段,其中a是主键,b上建了索引,然后编写sql语句SELECT * FROM tbl WHERE a=1这样不会产生回表,因为所有的数据在a的索引树中均能…

    数据库 2023年6月16日
    0107
  • 常用MySQL语句(持续更新)

    1. 客户端登录 在终端输入 mysql -u[&#x7528;&#x6237;&#x540D;] -p[&#x5BC6;&#x7801;]…

    数据库 2023年6月14日
    068
  • 2022-8-16 mysql 第二天 约束

    重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。 构建数据库 创建一张student表: DROP TABLE IF EXIST…

    数据库 2023年5月24日
    063
  • pg substring 正则提取子串

    官方案例: 测试: posted @2022-02-08 19:48 cheng_blog 阅读(218 ) 评论() 编辑 Original: https://www.cnblo…

    数据库 2023年6月16日
    080
  • 分享一例同一系统里不同服务之间通信的设计方案

    优付系统结构如下。一个数据库之上,有商户接口(RestAPI)、运营后台(OMS)、商户门户这3个独立SSM应用,三者有各自不同的功能处理逻辑。 现在呢,要做一个补偿工具。当付款单…

    数据库 2023年6月9日
    0124
  • Centos安装mysql57

    1.1 MySQL安装 1.1.1 下载 wget 命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql…

    数据库 2023年5月24日
    0107
  • python-django框架中使用七牛云

    1:注册七牛云账号 https://www.qiniu.com/ js文件 链接:https://pan.baidu.com/s/1BW1svHqEsXrrTNtRobKkpg 提…

    数据库 2023年6月6日
    092
  • Docker Mysql安装和启动

    1、拉取mysql镜像 前往docker官网dockerhub在这里插入图片描述可以在红框内选择指定版本,例如 <span class=”token function”&gt…

    数据库 2023年6月6日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球