利用jdk1.7中 Fork/join 多线程框架完成统计某个文件夹下所有文件的大小综合。关于Fork/Join框架的基本知识,读者可以参看以下博文:
http://ifeve.com/fork-and-join-java/
程序源代码如下:
package ForkJoinTest;
import java.io.File;
import java.util.LinkedList;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;
class DocumentSize extends RecursiveTask<Long>
{
/**
*
*/
private static final long serialVersionUID = 1L;
LinkedList<File> documentList;
public DocumentSize(LinkedList<File> documentList)
{
this.documentList=documentList;
}
@Override
protected Long compute() {
long total=0;
for(File file:documentList)
{
total+=file.length();
}
return total;
}
}
class FolderSize extends RecursiveTask<Long>
{
/**
*
*/
private static final long serialVersionUID = 1L;
File file;
public FolderSize(File file)
{
this.file=file;
}
&