TimeUnit 笔记

TimeUnit笔记

1.TimeUnit 简介

  TimeUnit是java.util.concurrent包下的一个枚举类,其主要封装了时间单位之间的转换以及基于时间上对线程的基本操作(sleep,join,wait);其主要特色是对时间操作提供了较好的可读性,同时也是对枚举语法理解的一个较好的例子。

  大家都知道,对于Thread.sleep方法里,只接受毫秒的入参,这样实际中就经常先使用一个常量保存sleep的时间,比如3秒钟,我们的代码通常会这样写:

private final int SLEEP_TIME = 3 * 1000; //3 seconds

因为Thread.sleep方法参数接受的毫秒单位的数值,比较下面代码就知道TimeUnit枚举成员的sleep方法更优雅:

TimeUnit.MILLISECONDS.sleep(10);
TimeUnit.SECONDS.sleep(10);
TimeUnit.MINUTES.sleep(10);
Thread.sleep(10);
Thread.sleep(10*1000);
Thread.sleep(10*60*1000);

2.TimeUnit 作为时间转换类的工具

//关于秒的常用方法
TimeUnit.SECONDS.toMillis(1)     1秒转换为毫秒数
TimeUnit.SECONDS.toMinutes(60)   60秒转换为分钟数
TimeUnit.SECONDS.sleep(5)  线程休眠5秒
TimeUnit.SECONDS.convert(1, TimeUnit.MINUTES) 1分钟转换为秒数

//TimeUnit.DAYS            日的工具类
//TimeUnit.HOURS        时的工具类
//TimeUnit.MINUTES        分的工具类
//TimeUnit.SECONDS        秒的工具类
//TimeUnit.MILLISECONDS    毫秒的工具类

 3.参考链接:

 1.http://stevex.blog.51cto.com/4300375/1285767

 2.http://chenjumin.iteye.com/blog/2182171

原文地址:https://www.cnblogs.com/boothsun/p/5621574.html