Thread.sleep()和TimeUnit.SECONDS.sleep()的区别

TimeUnit在juc包下,提供了可读性更好的线程暂停操作。
尽量使用TimeUnit.SECONDS下的sleep。
TimeUnit.SECONDS.sleep()是对Thread.sleep()的一个包装。源码如下:

1
2
3
4
5
6
7
public void sleep(long timeout) throws InterruptedException {
if (timeout > 0) {
long ms = toMillis(timeout);
int ns = excessNanos(timeout, ms);
Thread.sleep(ms, ns);
}
}