如果我要调用一个Java线程进入睡眠状态,有理由选择其中一种形式而不是其他形式吗?
Thread.sleep(x)或
TimeUnit.SECONDS.sleep(y)发布于 2012-03-07 00:24:43
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);
}
}发布于 2012-03-07 00:24:45
它们是一样的。我更喜欢后者,因为它更具描述性,并且允许选择时间单位(参见TimeUnit):DAYS、HOURS、MICROSECONDS、MILLISECONDS、MINUTES、NANOSECONDS、SECONDS。
https://stackoverflow.com/questions/9587673
复制相似问题