【发布时间】:2014-12-21 18:30:39
【问题描述】:
我从这个问题中得到了帮助
Wait for all the threads to finish their job and then measure the time elapsed>
但是这个参考并不能解决我的问题。可能我在某些方面错了。
for (ReadProcess_MongoDB readData : readProcessMongoObj)
executor.execute((Runnable) readData);
executor.shutdown();
executor.awaitTermination(1, TimeUnit.MINUTES);
}
catch (InterruptedException e) {
//Log exception here
} finally {
executor.shutdownNow();
printTime();
}
public void printTime()
{
for(int i=0;i<numberOfThreads;i++)
System.err.println("used Time "+timeArrObj[i]);
}
系统打印这样的数据
线程数=3 MongoDB_readQuery 使用时间 109
使用时间 109
线程数=0 MongoDB_readQuery 使用时间 109
使用时间 109
使用时间 0
使用时间 0
使用时间 0
线程数=2 MongoDB_readQuery 使用时间 109
线程数=4 MongoDB_readQuery 使用时间 109
线程号=1 MongoDB_readQuery 使用时间 109
但我想要显示数据
线程数=3 MongoDB_readQuery 使用时间 109
线程数=0 MongoDB_readQuery 使用时间 109
线程数=2 MongoDB_readQuery 使用时间 109
线程数=4 MongoDB_readQuery 使用时间 109
线程号=1 MongoDB_readQuery 使用时间 109
使用时间 109
使用时间 0
使用时间 0
使用时间 0
使用时间 109
我想在完成所有线程后执行 printTime()。请指出我犯错的地方
【问题讨论】:
-
您是否尝试过您参考中提到的那个人的完成服务?我在你的例子中没有看到它
标签: java multithreading threadpool