gpt4 book ai didi

java - 如何计算java中一个服务所花费的总时间?

转载 作者:行者123 更新时间:2023-11-30 03:02:19 25 4
gpt4 key购买 nike

我正在使用多线程运行一个简单的java程序。每个线程调用一个服务。我想打印服务调用所花费的总时间。请告知如何在多线程环境中执行此操作。我的代码如下所示没有给出正确的结果。请帮忙。

public class ServiceCaller {
private long totalTime;

public void makeRequest() {
long startTime = System.currentTimeMillis();
serviceCall()
long endTime = System.currentTimeMillis();
totalTime = totalTime+(endTime-startTime);
System.out.println(DurationFormatUtils.formatDurationHMS(totalTime))
}
}

最佳答案

对totalTime的访问应该是线程安全的。您可以使用 AtomicLong

final AtomicLong timeTaken = new AtomicLong(0);

// later
timeTaken.addAndGet(endTime - startTime);

您可能希望使用 System.nanoTime() 而不是 System.currentTimeMillis() 来获得更高的分辨率。

关于java - 如何计算java中一个服务所花费的总时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35649619/

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