1.Fork/Join
1.1.概念
1>.Fork/Join是JDK 1.7
加入的新的线程池
实现,它体现的是一种分治
思想,适用于能够进行任务拆分的cpu密集型
运算;
2>.所谓的任务拆分,是将一个大任务拆分为算法上相同的小任务,直至不能拆分可以直接求解.
跟递归相关的一些计算,如归并排序、斐波那契数列、都可以用分治思想进行求解;
3>.Fork/Join 在分治的基础上加入了多线程,
可以把每个任务的分解与合并交给不同
的线程来完成,进一步提升了运算效率;
4>.Fork/Join默认会创建与cpu核心数大小相同的线程池;
1.2.使用
***注意: 提交给 Fork/Join线程池的任务需要继承RecursiveTask(有返回值)或RecursiveAction(没有返回值),例如下面定义了一个对 1~n 之间的整数求和的任务;
public class TestForkJoinDemo {
public static void <