TimeUnit.MICROSECONDS.sleep分析

学习JUC时发现TimeUnit.MICROSECONDS.sleep()这个方法,就想它和Thread.sleep()有什么区别

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

Thread.sleep()方法参数需要接受毫秒单位的数值

TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep().

TimeUnit类可以通过指定DAYS、HOURS、MINUTES,SECONDS、MILLISECONDS和NANOSECONDS解决