TimeUnit类

首先TimeUnit类是java.util.concurrent包下的一个类

该类的出现主要是提供了可读性比较好的线程暂停操作,一般情况下使用其来代替Thread.sleep()。

是因为Thread的sleep方法存在这一个潜在的问题,就是代码的可读性太差


我们先来简单的感受一下:

Thread.sleep(2400000)

可能在上面的代码中,一般人并不能直接看出这个线程究竟等待了多长时间,当然指的是一般人哈。。。


如果我们写成下面这个样子

Thread.sleep(4*60*1000)

可读性可能会好一点,最起码我们知道了是多少分,但是这还不是最好的。


OK,TimeUnit类的出现就解决了这个问题。
该类通过指定DAYS、HOURS、MINUTES、SECONDS、MILLIISECONDS 和 NANOSECONDS。如果使用TimeUnit类实现 sleep 4分钟就是这样的:

TimeUnit.MINUTES.sleep(4);

一目了然!!我们还可以使用秒、分、小时级别来暂停线程。


但是该类不仅有线程睡眠这一种方法,还有转换时间单位的方法:

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

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

该类在使用上很好的诠释的Java的枚举思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值