利用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;
}
@Override
protected Long compute() {
long total=0;
if(

本文介绍如何借助JDK1.7的Fork/Join框架来实现多线程统计指定文件夹内所有文件的大小。通过提供的链接可以了解Fork/Join的基础知识,同时给出了具体的程序源代码和实验结果。

1260

被折叠的 条评论
为什么被折叠?



