gpt4 book ai didi

java - 记录每个循环迭代和线程 sleep 是不好的做法?

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:44 25 4
gpt4 key购买 nike

我想在特定时间间隔内记录某些方法的进度(避免日志溢出)。我做了这个:

while (!x.isFinished()) {
LOG.info("some progress: {}", x.getStatus());
Thread.sleep(5000);
}

据 Sonar 表明使用 Thread.sleep(n) 并将其标记为关键是不好的做法,我正在寻找更好、正确的方法来实现它。有什么我可以改进的地方吗?

消息是:

Using Thread.sleep in a test is just generally a bad idea. It creates brittle tests that can fail unpredictably depending on environment ("Passes on my machine!") or load. Don't rely on timing

编辑:这不是重复,也不是测试。我想记录工作周期中每个 x 间隔的时间。

编辑2(根据@Wolf S的回答进行澄清):感谢您的回复。它在多个地方使用,我每次都想知道是哪个地方。这是示例代码。更重要的是,它让我了解了它在其生命周期中需要多少时间才能完成并有助于诊断。

我只是想知道是否有一些严格的方法可以做到这一点,或者只是忽略 Sonar 。

最佳答案

如果这不是测试,那么您的代码没有问题。 (可能取决于代码的其余部分,但一般来说使用 Thread.sleep 并不是一个坏主意)

关于java - 记录每个循环迭代和线程 sleep 是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45481356/

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