TimeUnit是java.util.concurrent包下面的一个类,主要有两种功能:
1、提供可读性更好的线程暂停操作,通常用来替换Thread.sleep()
2、提供便捷方法用于把时间转换成不同单位
替换Thread.sleep()
Thread.sleep()的弊端:Thread.sleep()是一个静态方法,暂停线程时不会释放锁,并会抛出InterrupttedException异常,且可读性差
例如:Thread.sleep(25000) 很难一下子得出暂停了多久
TimeUnit的解决方式
可指定DAYS、HOURS、MINUTES,SECONDS、MILLISECONDS和NANOSECONDS(纳秒)来表明暂停时间,例如:
TimeUnit.MINUTES.sleep(4); // sleeping for 4 minutes
时间转换
例如:
TimeUnit.SECONDS.toMillis(1) //1秒转换为毫秒数,注意,参数默认为秒
TimeUnit.SECONDS.toMinutes(60) //60秒转换为分钟数
TimeUnit.SECONDS.convert(1, TimeUnit.MINUTES) //1分钟转换为秒数,这里可指定参数类型