外贸联系网站,网络营销的四种策略,长沙网建站,翻译api wordpress首先给出结论#xff1a;线程使用中的暂停#xff0c;建议优先使用TimeUnit类中的sleep()但需要注意传入时间小于0的异常情况TimeUnit是java.util.concurrent包下的一个类名主要功能是暂停线程的操作拥有与Thread.sleep()一样的功能都是暂停线程#xff0c;但TimeUnit提供了…首先给出结论线程使用中的暂停建议优先使用TimeUnit类中的sleep()但需要注意传入时间小于0的异常情况TimeUnit是java.util.concurrent包下的一个类名主要功能是暂停线程的操作拥有与Thread.sleep()一样的功能都是暂停线程但TimeUnit提供了可读性更好的线程暂停操作可以指定DAYS、HOURS、MINUTES、SECONDS、MILLISECONDS和NANOSECONDS而Thread.sleep()参数如下它可以接收长整型毫秒和长整型的纳秒参数这样对程序员造成的一个问题就是很难知道到底当前线程是睡眠了多少秒、分、小时或者天看看下面这个Thread.sleep()方法粗略一看你能计算出当前线程是等待多长时间吗可能有些人可以但是对于大多数程序员来说这种写法的可读性还是很差的你需要把毫秒转换成秒和分让我们来看看另外一个例子这个例子比前面那个例子可读性稍微好一点这比前面那个例子已经好多了但是仍然不是最好的你注意到睡眠时间用毫秒不容易猜出当前线程将等待4分钟TimeUnit类解决了这个问题通过指定DAYS、HOURS、MINUTESSECONDS、MILLISECONDS和NANOSECONDSTimeUnit是Java枚举应用场景中最好的例子之一所有TimeUnit都是枚举实例让我们来看看线程睡眠4分钟用TimeUnit是如何使用的你可以看到这比Thread的sleep方法的可读性好多了记住TimeUnit.sleep()内部调用的Thread.sleep()也会抛出InterruptException除了sleep的功能外TimeUnit还提供了便捷方法用于把时间转换成不同单位例如如果你想把秒转换成毫秒你可以使用下面的代码它将返回44,000枚举常量摘要但需要注意的是TimeUnit调用的sleep方法如果传入的时间是小于0的那么不会做任何的事情而sleep方法如果传递的参数小于0是会抛出异常的