【Java并发编程】Fork/Join
2017-07-31 17:16
295 查看
Fork/Join 框架实现了ExecutorService接口,提供了充分利用多处理器的功能。那些可以递归分解为许多小任务的非常适合使用这种方式。Fork/Join 框架采用了“工作窃取算法”——空闲的线程可以从繁忙的线程那些“窃取”一些任务。
Fork/Join 框架的核心是类ForkJoinPool,该类是AbstractExecutorService的子类,实现了“工作窃取算法”。可以执行ForkJoinTask任务
用伪代码表示逻辑如下
将这段代码写进ForkJoinTask的一个实现类中,可以是继承RecursiveTask或者RecursiveAction,借此,然后调用ForkJoinTask的invoke方法。
在Java标准库中,java.util.Arrays中parallelSort也是利用了Fork/Join框架。
Fork/Join 框架的核心是类ForkJoinPool,该类是AbstractExecutorService的子类,实现了“工作窃取算法”。可以执行ForkJoinTask任务
用伪代码表示逻辑如下
if (任务被分解得足够小了) { 处理该这个任务 } else { 将任务分解成两部分,分别执行,等待结果 }
将这段代码写进ForkJoinTask的一个实现类中,可以是继承RecursiveTask或者RecursiveAction,借此,然后调用ForkJoinTask的invoke方法。
在Java标准库中,java.util.Arrays中parallelSort也是利用了Fork/Join框架。
相关文章推荐
- 【Java并发编程】Fork/join 并发编程模型,让多核cpu发挥最大优势。
- 【Java并发编程的艺术】【学习笔记】ThreadLocal与Fork/Join
- Java并发编程--Fork/Join框架使用
- 《Java 7 并发编程指南》学习概要 (6) Fork/Join
- Java并发编程核心方法与框架-Fork-Join分治编程(一)
- 【Java并发编程】Fork/join 并发编程模型,让多核cpu发挥最大优势。
- Java并发编程核心方法与框架-Fork-Join分治编程(二)
- Java并发编程核心方法与框架-Fork-Join分治编程(二)
- [转]Java7中的ForkJoin并发框架初探(下)—— ForkJoin的应用
- java高并发设计(八)--并行框架fork/join
- Java并发编程之volatile、synchronized、yield、join
- Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
- 《Java 7 并发编程指南》学习概要 (1)join、daemon、UncaughtExceptionHandler 、中断
- java并发-Fork/Join
- [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
- java并发之Fork/Join框架
- [转]Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理
- Java Thread&Concurrency(1): 深入理解Fork-Join并发执行框架
- Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
- Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)(转)