parallelStream并行执行的流使用经验

应用场景/主要解决问题

主要利用并行计算解决,全省地灾气象预警计算效率问题。我们设计格网模型集合,加载到内存中,每一步分析直接并行操作格网集合,避免频繁读取更新数据库,因网络IO,数据库IO 瓶颈效率低下。

还有一个关键问题,内存中的中间结果,分析结果怎样实时利用GIS平台发布,下一篇介绍。

内容描述

什么任务适合并行:

CPU密集型的任务来说,并行流使用ForkJoinPool,为每个CPU分配一个任务,这是非常有效率的,但是如果任务不是CPU密集的,而是I/O密集的,并且任务数相对线程数比较大,那么直接用ParallelStream并不是很好的选择,例如写文件,查询数据库就不太适合。

应用场景影响并行流的主要七个因素

1 数据大小

输入数据的大小会影响并行化处理,当只有足够大、每个数据处理管道花费的时间足够多时,并行化才有意义

2 源数据结构

一般都是基于集合进行并行化

3 装箱

处理基本类型比处理装箱类型要快

4 cpu核的数量

只有在多核的机器上使用才有意义,并且是运行时能够使用的多少核

5 单元处理开销

原先处理耗时较长,使用并行化才有意义

6 任务之间最好是状态无关的,因为parallelStream默认是非线程安全的,可能带来结果的不确定性。

7 并行执行无序

截图(如有)

时间单位毫秒,明显提升27,226毫秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值