Thread.sleep vs. TimeUnit.SECONDS.sleep
如果我要调用一个 Java 线程进入睡眠状态,是否有理由更喜欢其中一种形式而不是另一种形式?
Thread.sleep(x)
或
TimeUnit.SECONDS.sleep(y)
如果我要调用一个 Java 线程进入睡眠状态,是否有理由更喜欢其中一种形式而不是另一种形式?
Thread.sleep(x)
或
TimeUnit.SECONDS.sleep(y)
TimeUnit.SECONDS.sleep(x)
将调用 Thread.sleep
。唯一的区别是可读性,对于不明显的持续时间(例如:vs.),使用TimeUnit
可能更容易理解。Thread.sleep(180000)
TimeUnit.MINUTES.sleep(3)
有关参考,请参阅下面的 代码:sleep()
TimeUnit
public void sleep(long timeout) throws InterruptedException {
if (timeout > 0) {
long ms = toMillis(timeout);
int ns = excessNanos(timeout, ms);
Thread.sleep(ms, ns);
}
}
它们是相同的。我更喜欢后者,因为它更具描述性,并允许选择时间单位(请参阅TimeUnit
):,,,,。。DAYS
HOURS
MICROSECONDS
MILLISECONDS
MINUTES
NANOSECONDS
SECONDS