0%

TimeUnit类

文章字数:285,阅读全文大约需要1分钟

这是java并发包java.util.concurrent下的一个用于定义时间粒度、时间转换、线程休眠的工具类。

枚举量

1
2
3
4
5
6
7
SECONDS:秒
MINUTES:分
HOURS:时
DAYS:日
NANOSECONDS:纳秒,等于1*10^-9 s
MICROSECONDS:微妙 1*10^-6 s
MILLISECONDS:毫秒 1*10^-3 s

常用方法

  1. toHours(long duration):
    粒度之间都有类似的方法

    1
    2
    // 一天几个小时
    Long dayToHour = TimeUnit.DAYS.toHours(1);//24
  2. convert(long sourceDuration, TimeUnit sourceUnit)

    1
    2
    // 48小时转换成天
    TimeUnit.DAYS.convert(48, TimeUnit.HOURS);//2
  3. sleep(long timeout)
    可读性更好的线程休眠操作

    1
    2
    //休眠两分钟
    TimeUnit.SECONDS.sleep(2);
  4. timedJoin(Thread thread, long timeout)

    1
    2
    //指定线程休眠指定毫秒数
    TimeUnit.SECONDS.timedJoin(Thread.currentThread(), 2);
  5. timedWait(Object obj, long timeout)

    1
    2
    3
    4
    5
    //休眠指定对象
    public synchronized void show() throws InterruptedException {
    TimeUnit.SECONDS.timedWait(this, 2);
    System.out.println("HelloWorld");
    }