public void doMain(String dir) {
// 获取开始时间
long startTime = System.currentTimeMillis();
try {
File file = new File(dir);
File[] files = file.listFiles();
ExecutorService executorService = Executors.newFixedThreadPool(30);
int size =1000;
for (int i = 0; i < size; i++) {
final int index = i;
final File fileNow = files[index];
Runnable run = new Runnable() {
public void run() {
System.out.println((index + 1) + "/" + length + "....");
// 目录
if (fileNow.isDirectory()) {
System.out.println(files[i].getName() + ":目录");
getFilesFromDirThread(fileNow.getAbsolutePath());
}
else {// 文件
if (fileNow.getName().endsWith(".html")) {
System.out.println(fileNow.getName() + ":文件");
doMyJob(fileNow.getAbsolutePath());
}
}
}
};
executorService.execute(run);
}// end for
executorService.shutdown();
try {
boolean loop = true;
do { // 等待所有任务完成
loop = !executorService.awaitTermination(2,
TimeUnit.SECONDS);
} while (loop);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 获取结束时间
long endTime = System.currentTimeMillis();
// 输出程序运行时间
System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
} catch (Exception e) {
}
}java.util.concurrent多线程简单demo及计算多线程程序运行时间
最新推荐文章于 2023-05-16 20:12:19 发布
本文介绍了一个使用Java实现的程序,该程序遍历指定目录下的文件和子目录,输出目录和文件信息,并根据文件类型执行特定操作。
1252

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



