有意思的TimeUnit

2019-11-04 15:02:09 浏览数 (1)

java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum:

public enum TimeUnit

好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并不是一个简单的枚举类。

时间单位换算

代码语言:javascript复制
//小时转换为秒
long sec = TimeUnit.HOURS.toSeconds(1);

// 另一种形式
long sec = TimeUnit.SECONDS.convert(1, TimeUnit.HOURS);

sleep()

比如,当前线程休眠5秒,传统的方式如下:

代码语言:javascript复制
Thread.sleep(5000);

用TimeUnit看起来是这样的:

代码语言:javascript复制
TimeUnit.SECONDS.sleep(5);

如果休眠1天呢?(有点扯淡,仅为说明问题),传统的方式:

代码语言:javascript复制
Thread.sleep(1000*60*60*24);

对不对呢?得掰着手指头 —— 看半天,用TimeUnit就清晰多了。

代码语言:javascript复制
TimeUnit.DAYS.sleep(1);

0 人点赞