繁体   English   中英

Thread.sleep与TimeUnit.SECONDS.sleep

[英]Thread.sleep vs. TimeUnit.SECONDS.sleep

如果我打算让一个Java线程进入睡眠状态,是否有理由选择其中一种形式而不是另一种?

Thread.sleep(x)

要么

TimeUnit.SECONDS.sleep(y)

TimeUnit.SECONDS.sleep(x)将调用Thread.sleep 唯一的区别是可读性,使用TimeUnit可能更容易理解非显而易见的持续时间(例如: Thread.sleep(180000)TimeUnit.MINUTES.sleep(3) )。

供参考,请参阅下面的TimeUnitsleep()代码:

public void sleep(long timeout) throws InterruptedException {
    if (timeout > 0) {
        long ms = toMillis(timeout);
        int ns = excessNanos(timeout, ms);
        Thread.sleep(ms, ns);
    }
}

他们是一样的。 我更喜欢后者,因为它更具描述性,允许选择时间单位(参见TimeUnit ): DAYSHOURSMICROSECONDSMILLISECONDSMINUTESNANOSECONDSSECONDS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM