Fork/Join
JDK1.7开始提供的在JUC包下的并行任务框架。
在多核机器上有显著的效果,主要核心工作窃取
拥有工作窃取算法,空闲线程会帮助其他有任务的线程处理任务队列
应用概述
查询某个文件夹路径下容量最大的文件
常用方法:
1. 单线程依次遍历每层目录及文件,记录并对比文件大小
写法简单,效率不高
2.多线程线程池遍历每层目录及文件
线程数量,每条线程遍历的目标,需要控制,很容易出现空闲线程
这里我们就可以使用Fork/Join并行处理此任务,
将任务分成多个子任务,执行后分别返回结果,合并结果到最终返回。
package com.nf;
import java.io.File;
import java.util.concurrent.RecursiveTask;
public class ReckonTask extends RecursiveTask<File> {
/**
*
*/
private