java - 如何计算多个线程完成执行的总时间?

标签 java multithreading response runnable

我正在从我的代码中启动多个线程(大约 1000 个)。它们是从 while 循环中调用的 Runnable 线程。如何计算所有线程完成执行所花费的总时间?

此外,我正在打开一个数据库连接并有一组查询,我正在为其启动这些线程(1 个线程用于 1 个查询)。我什么时候关闭连接?

最佳答案

我会使用 ExecutorService

long start = System.nanoTime();
ExecutorService service = Executors.newWhatEverPool();
for(loop)
   service.submit(new MyRunnable());

service.shutdown();
service.awaitTermination(1, TimeUnit.HOUR); // or longer.    
long time = System.nanoTime() - start;
System.out.printf("Tasks took %.3f ms to run%n", time/1e6);

完成后关闭连接。资源的创建者也关闭它是一种常见的模式。例如如果主线程创建连接,它可能会在所有线程完成后关闭。

关于java - 如何计算多个线程完成执行的总时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859534/

相关文章:

request - 当只回答了部分查询时如何响应 DNS 请求?

java - 在正则表达式中匹配电话号码

python - 使用 python 进行线程处理 : local variables trouble

java - @Value ("${local.server.port}") 在 Spring boot 1.5 中不起作用

java - 进程间同步?

c# - QueueUserWorkItem() 和 BeginInvoke() 之间的区别是什么,用于执行不需要返回类型的异步事件

javascript - 我们可以在jmeter中解析响应吗

binary - WSO2 响应二进制文件?

java - 为什么这个线程允​​许另一个线程访问它的同步方法?

java - Apache Tomcat 将使用非阻塞 http 协议(protocol)关闭文件下载连接