parallelStream和fork/join 原理和使用
1. Fork/Join框架
fork操作的作用是把一个大的问题划分成若干个较小的问题。在这个划分过程一般是递归进行的。直到可以直接进行计算。需要恰当地选取子问题的大小。太大的子问题不利于通过并行方式来提高性能,而太小的子问题则会带来较大的额外开销。每个子问题计算完成后,可以得到关于整个问题的部分解。join操作的作用是把这些分解手机组织起来,得到完整解。
简单的说,ForkJoin其核心思想就是分治。Fork分解任务,Join收集数据。
2. Fork/Join框架的主要类
一个fork/join框架之下的任务由ForkJoinTask类表示。ForkJoinTask实现了Future接口,可以按照Future接口的方式来使用。在ForkJoinTask类中之重要的两个方法fork和join。fork方法用以一部方式启动任务的执行,join方法则等待任务完成并返回指向结果。在创建自己的任务是,最好不要直接继承自ForkJoinTask类,而要继承自ForkJoinTask类的子类RecurisiveTask或RecurisiveAction类。两种的区别在于RecurisiveTask类表示的任务可以返回结果,而RecurisiveAction类不行。
简单总结:
ForkJoin主要提供了两个主要的执行任务的接口。RecurisiveAction与RecurisiveTask 。
- RecurisiveAction :没有返回值的接口。
- RecurisiveTask :带有返回值的接口
parallelStream是什么
parallelStream其实就是一个并行执行的流.它通过默认的ForkJoinPool,可能提高你的多线程任务的速度.
parallelStream的作用
Stream具有平行处理能力,处理的过程会分而治之,也就是将一个大任务切分成多个小任务,这表示每个任务都是一个操作,因此像以下的程式片段:
parallelStream背后的男人:ForkJoinPool
parallelStream和fork/join 原理和使用相关推荐
- java fork join原理_细说Fork/Join框架
什么是Fork/Join框架? Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干小任务,最终汇总每个小任务结果后得到大任务结果的框架.Fork就是把一个大 ...
- java fork join原理_Java并发Fork-Join框架原理解析
1.什么是Foirk/Join框架 Fork/Join框架是Java7提供用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 2.什么是并行流与顺 ...
- Fork/Join工作原理解析
一.如何高效利用CPU 在介绍Fork/Join框架之前,思考一个问题,在多线程的情况下,如何才能高效的利用CPU,以常用的线程池为例,线程池的线程数设置多少合适? 通常调整线程池中的线程数量其核心目 ...
- 锁与并发工具包与线程池与LockSupport与Fork/Join框架与并行流串行流与阻塞队列与JPS,jstack命令查看死锁查看线程状态与AQS个人笔记九
朝闻道,夕死可矣 本文共计 86564字,估计阅读时长1小时 点击进入->Thread源码万字逐行解析 文章目录 本文共计 86564字,估计阅读时长1小时 一锁 二Java中13个原子操作类 ...
- Oracle官方教程之Fork/Join
原文链接,译文链接,译者:Zach,校对:郑旭东 fork/join框架是ExecutorService接口的一种具体实现,目的是为了帮助你更好地利用多处理器带来的好处.它是为那些能够被递归地拆解成子 ...
- fork/join 全面剖析,你可以不用,但是不能不懂!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:浮云骑士LIN cnblogs.com/linlinismi ...
- java fork_浅谈Java的Fork/Join并发框架
前几天有写到整合并发结果的文章,于是联想到了Fork/Join.因为在我看来整合并发结果其实就是Fork/Join中的Join步骤.所以今天我就把自己对Fork/Join一些浅显的理解记录下来. 1. ...
- 浅谈Java的Fork/Join并发框架
1. Fork/Join是什么 Oracle的官方给出的定义是:Fork/Join框架是一个实现了ExecutorService接口的多线程处理器.它可以把一个大的任务划分为若干个小的任务并发执行,充 ...
- Fork/Join 框架介绍
参考:https://www.infoq.cn/article/fork-join-introduction 1. 什么是 Fork/Join 框架 Fork/Join 框架是 Java7 提供了的一 ...
最新文章
- mapgis编辑属性结构编辑不了_MapGIS67操作手册(3-17)MapGIS67编辑线属性结构的方法...
- 史上最变态高考数学题,让99%的考生献上膝盖,看完我惊了......
- c++ 返回string_JVM系列之:String.intern和stringTable
- TimeOut 超时问题解决方案
- Effective Java 思维导图
- 用 ABAP 新建本地 Excel 文件并写入数据试读版
- 移动安全:Smali语法学习示例与实践
- IDEA社区版配置Tomcat
- GAN原理,优缺点、应用总结
- 超市密码箱c语言程序,超市存包系统C语言.doc
- 蓝桥杯大赛——练习系统登录
- 生动的ajax图片显示效果,LightBox
- su: warning: cannot change directory to : Permission denied ;-bash: bash_profile: Permission denied
- Python(x,y)安装
- 【资源分享】Prezi的介绍——PPT的取代工具(文末有安装软件教程和大量资源的下载链接)
- 【linux报错解决】ECDSA host key for X.X.X.X has changed and you have requested strict checking
- 投稿到掘金的文章为什么不通过?
- 香橙派OrangePi 4 LTS开发板通过Mini PCIE连接SATA硬盘的操作方法
- Ubuntu安装软件备忘录
- 华为服务器告警显示风扇不在位,华为机架服务器RH2285 运行时噪声很大故障的解决...