gpt4 book ai didi

java - java 定时线程池

转载 作者:行者123 更新时间:2023-12-01 15:03:04 25 4
gpt4 key购买 nike

我需要计算一个方法完成所需的总时间,通常我使用:

long startTime = System.currentTimeMillis();
MethodWithThreads(); // the method which uses threading
long endTime = System.currentTimeMillis();
total = endTime - startTime;

现在显然问题是主线程在其余线程之前终止。线程函数内部有如下代码:

int cores = Runtime.getRuntime().availableProcessors();
ExecutorService pool = Executors.newFixedThreadPool(cores-1);
for(int i = 0; i < 1000; i++)
{
pool.submit(new RunnableThread());
}
pool.shutdown();

那么我如何找到线程方法完成的总时间?

最佳答案

愚蠢的我......应该做更多的研究。我在 while 循环中使用了 isTermination 并等待终止。

 while(!pool.isTerminated())
{
try {
pool.awaitTermination(1000, TimeUnit.SECONDS);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadManagement.class.getName()).log(Level.SEVERE,null, ex);
}
}
long endTime = System.currentTimeMillis();

关于java - java 定时线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13355886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com