![](/img/trans.png)
[英]Why does Thread.sleep() or TimeUnit.SECONDS.sleep() delays execution of previous statements instead pausing from where sleep() is called
[英]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)
)。
供参考,请参阅下面的TimeUnit
的sleep()
代码:
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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.