优化分治解决方案:Fork/Join 框架
Java 7 并发 API 通过 Fork/Join
框架引入了一种特殊的执行器。
该框架的设计目的是针对那些可以使用分治设计范式来解决的问题,实现最优的并发解决方案。
基本内容
小结
-
分治设计方法是一种非常流行的方法,可以用于解决各种不同的问题。
可以将原始问题分割成较小的问题,再将这些较小的问题分割成更小的问题,直到它们足够简单,可以被直接处理为止。 Fork/Join
框架基于Fork
操作创建一个新的子任务,基于Join
操作在获取结果前等待子任务结束。- 使用了 API 提供的默认
ForkJoinPool
,并且创建了一个新的ForkJoinPool
对象,还用到了下面三种类型的ForkJoinTasks
。RecursiveAction
类,用作那些不返回结果的 ForkJoinTask 的基类。RecursiveTask
类,用作那些返回结果任务的基类。CountedCompleter
类,用作那些当所有子任务执行完毕后需要执行某个方法或者启动另一任务的任务的基类。