如何判斷java多線程是否全部執行完了,並計算總耗時?

// 日前工作遇到一個需求,就是把硬盤的文件(大量文件)全部讀取出來,然後全部解析生成文件保存到硬盤需要多線程處理,並要計算全部執行結束後的耗時。以下是實現方法.

// 創建線程池

ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

// 開啓一個線程

cachedThreadPool.execute(new Runnable() {


@Override
public void run() {
for (int k = listStart; k < listStop; k++) {
System.out.println("執行業務操作……")
}
}
}
});

//以下是等線程池的全部線程執行結束後,會自動執行。

cachedThreadPool.shutdown();
while (true) {
if (cachedThreadPool.isTerminated()) {
long time = System.currentTimeMillis() - start;
System.out.println("["+Utils.getNowTime()+"]:" + "程序結束了,總耗時:" + time + " ms(毫秒)!\n");
break;
}
}


此處只啓動了一個線程,看需要啓動。等全部線程執行結束,就可以計算執行時間了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章