JAVA中并行流的使用场景

简介: JAVA中并行流的使用场景

JAVA Web开发大多数的工作是在MVC大的层次架构下写业务代码,在代码结构上会分为Controller,Service和Dao层,并且会在Service做大量的业务代码的判断,比如分页查询列表或者不分页查询列表,在Service层对于List列表遍历做一些字典翻译等赋值操作。JAVA8之前的遍历就是传统的for,While之类的,JAVA8以后多了个Stream的概念并且支持Lambda表达式的语法糖写法,于是很多同学都会特意的使用这种新特性。

传统的for写法:

List<Object>list=newArrayList<>();
for(inti=0,length=list.size();i<length;i++){
//do something}

Stream流的写法

List<Object>list=newArrayList<>();
list.parallelStream().forEach(s->{
//do something});

在此先不考虑使用Stream流里面的filter和sorted之类的新函数去做过滤和排序之类的功能。单就一个从数据库里查询出来的排序好的列表,也不做任何的过滤,仅仅是为了做缓存中的字典翻译这个功能,上述两种写法有性能上的巨大差别吗?大家可以测试一下,好像差别不大,仅仅是语法上的问题。于是我就去学习了一下,得出和总结出大概这样的场景采取考虑使用并行流:大量的且互相之间没有依赖的数据且性能很低需要通过并行技术利用多核多线程去优化以提升性能的情况。

通过上面的特点可以考虑一下,我们的程序中处理的数据是否是大量的数据,数据之间有没有要互相依赖的处理逻辑,执行的代码性能是否很差需要耗时很多。如果没有上述的问题,我认为传统的for循环写法不会让程序大跌眼镜。

目录
相关文章
|
6天前
|
Java 程序员
深入理解Java匿名内部类的语法和使用场景
深入理解Java匿名内部类的语法和使用场景
|
12天前
|
存储 消息中间件 算法
Java中的集合框架详解:List、Set、Map的使用场景
Java中的集合框架详解:List、Set、Map的使用场景
|
3天前
|
并行计算 Java 大数据
Java中的高效并行计算与多线程编程技术
Java中的高效并行计算与多线程编程技术
|
8天前
|
缓存 Java 数据库连接
java面试题目 强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?
【6月更文挑战第28天】在 Java 中,理解和正确使用各种引用类型(强引用、软引用、弱引用、幻象引用)对有效的内存管理和垃圾回收至关重要。下面我们详细解读这些引用类型的区别及其具体使用场景。
17 3
|
14天前
|
Java
Java并行流问题之parallelStream的使用方式
Java并行流问题之parallelStream的使用方式
24 1
|
19天前
|
Java 程序员
Java多线程编程是指在一个进程中创建并运行多个线程,每个线程执行不同的任务,并行地工作,以达到提高效率的目的
【6月更文挑战第18天】Java多线程提升效率,通过synchronized关键字、Lock接口和原子变量实现同步互斥。synchronized控制共享资源访问,基于对象内置锁。Lock接口提供更灵活的锁管理,需手动解锁。原子变量类(如AtomicInteger)支持无锁的原子操作,减少性能影响。
25 3
|
20天前
|
Java 编译器
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
|
2天前
|
Java 调度 Windows
Java面试之程序、进程、线程、管程和并发、并行的概念
Java面试之程序、进程、线程、管程和并发、并行的概念
8 0
|
2天前
|
并行计算 监控 Java
Java中的并行计算与任务分发策略
Java中的并行计算与任务分发策略
|
2天前
|
安全 Java 测试技术
Java中的并行流详解
Java中的并行流详解