已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题,源码学院|只为培养BAT程序员而生源码学院地址:,并发编程之ForkJoin原理分析主讲老师:fox老师,大纲,源码学院|只为培养BAT程序员而生源码学院地址:,并发与并行Fork/join介绍与使用Fork/join原理分析,并发和并行,目标都是最大化CPU的使用率并发可认为是一种程序的逻辑结构的设计模式可以用并发的设计方式去设计模型,然后运行在一个单核系统上可以将这种模型不加修改地运行在多核系统上,实现真正的并行并行是程序执行的一种属性真正的同时执行,源码学院|只为培养BAT程序员而生源码学院地址:,面试题,源码学院|只为培养BAT程序员而生源码学院地址:,如何充分利用多核CPU的性能,计算很大数组中所有整数的和?,多线程任务拆分,源码学院|只为培养BAT程序员而生源码学院地址:,分治法,源码学院|只为培养BAT程序员而生源码学院地址:,基本思想:把一个规模大的问题划分为规模较小的子问题,然后分而治之,最后合并子问题的解得到原问题的解。步骤:分割原问题;求解子问题;合并子问题的解为原问题的解。在分治法中,子问题一般是相互独立的,因此,经常通过递归调用算法来求解子问题。,Fork-Join并行处理框架,源码学院|只为培养BAT程序员而生源码学院地址:,Java1.7引入了一种新的并发框架Fork/JoinFramework主要用于实现“分而治之”的算法,特别是分治之后递归调用的函数提供了的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架与ThreadPool共存,并不是要替换ThreadPool题,Fork-Join并行处理框架,源码学院|只为培养BAT程序员而生源码学院地址:,Java8parallelStream:内部就是采用ForkJoinPool,Fork-Join并行处理框架,源码学院|只为培养BAT程序员而生源码学院地址:,ForkJoinPool框架主要类:ForkJoinPool实现ForkJoin的线程池ThreadPoolForkJoinWorkerThread实现ForkJoin的线程ForkJoinTask一个描述ForkJoin的抽象类Runnable/CallableRecursiveAction无返回结果的ForkJoinTask实现RunnableRecursiveTask有返回结果的ForkJoinTask实现CallableCountedCompleter在任务完成执行后会触发执行一个自定义的钩子函数,ForkJoinPool实现了ExecutorService接口ExecutorService是JavaExecutor框架的基础类其他ExecutorService的实现执行Runnable或Callables任务ForkJoinPool执行ForkJoinTasks任务Executors.newWorkStealPool创建ForkJoinPool,Fork-Join并行处理框架,ForkJoinPool任务提交方法,ForkJoinTask,ForkJoinTask主要包括两个方法分别实现任务的分拆与合并:,fork()类似于Thread.start(),但是它并不立即执行任务,而是将任务放入工作队列中跟Thread.join()不同,ForkJoinTask的join()方法并不简单的阻塞线程利用工作线程运行其他任务当一个工作线程中调用join(),它将处理其他任务,直到注意到目标子任务已经完成,ForkJoin内部原理,ForkJoinPool中的所有的工作线程均有一个自己的工作队列WorkQueue双端队列(Deque)从队头取任务线程私有,不共享,ForkJoin内部原理,ForkJoinTask中fork的子任务,将放入运行该任务的工作线程的队头工作线程以LIFO的顺序来处理它队列中的任务,ForkJoin内部原理,为了最大化CPU利用率,空闲的线程将从其他线程的队列中“窃取”任务来执行从工作队列的队尾“窃取”任务,以减少竞争任务的“窃取”是以FIFO顺序进行的,因为先放入的任务往往表示更大的工作量支持“窃取”线程进行进一步的递归分解,ForkJoin内部原理,WorkQueue双端队列最小化任务“窃
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47262-2026航空器供应链协同数据交互要求
- 2025-2030中国尼龙酸二甲酯行业运行态势与投资前景预测报告
- 《水墨动物》教案-2025-2026学年赣美版小学美术四年级下册
- 皮革厂生产流程控制准则
- 非遗蜀绣荷包制作与DIY教程
- 某农产品收购站验收标准
- 2026年微生物组研究进展
- 用友工作计划总结工作总结021012
- 李静药学信息资源检索4
- 脂溢性皮炎患者的个案护理
- (正式版)T∕GDSTD 024-2026 广东省自然资源资产收储整备指南
- 2026江苏省数据集团有限公司春季招聘笔试参考题库及答案解析
- 2025年初级注册安全工程师笔试真题答案解析
- 2025年湖北省荆门市检察院书记员考试题(附答案)
- 水稻高产种植技术推广方案
- 2026秋招:中国人寿真题及答案
- 2026年定点零售药店医保政策培训考核试题及答案
- 科学作息 高效备考2026届高中新年开学第一课
- 奶牛场日常卫生制度
- 环保应急预案演练方案及演练记录
- 家政经纪人培训课件
评论
0/150
提交评论