【JUC】TimeUnit使用

概述

TimeUnit是java.util.concurrent包下面的一个类。

TimeUnit表示给定粒度单位的持续时间,并提供跨单元转换的实用方法,以及在这些单元中执行定时和延迟操作

TimeUnit不维护时间信息,而仅帮助组织和使用可能在各种上下文中单独维护的时间表示形式。 纳秒定义为千分之一微秒,微秒为千分之一毫秒,毫秒为千分之一秒,一分钟为六十秒,一小时为六十分钟,一天为二十四小时。

TimeUnit主要用于通知基于时间的方法如何解释给定的定时参数

常用的颗粒度

TimeUnit.DAYS          //天
TimeUnit.HOURS         //小时
TimeUnit.MINUTES       //分钟
TimeUnit.SECONDS       //秒
TimeUnit.MILLISECONDS  //毫秒

颗粒度转换

public long toMillis(long d)    //转化成毫秒
public long toSeconds(long d)  //转化成秒
public long toMinutes(long d)  //转化成分钟
public long toHours(long d)    //转化成小时
public long toDays(long d)     //转化天
import java.util.concurrent.TimeUnit;

public class TimeUnitTest {

    public static void main(String[] args) {
        //convert 1 day to 24 hour
        System.out.println(TimeUnit.DAYS.toHours(1));
        //convert 1 hour to 60*60 second.
        System.out.println(TimeUnit.HOURS.toSeconds(1));
        //convert 3 days to 72 hours.
        System.out.println(TimeUnit.HOURS.convert(3, TimeUnit.DAYS));
    }

}

延时,可替代Thread.sleep()。

示例一:

// Thread.sleep(500); //sleep 单位是毫秒
TimeUnit.SECONDS.sleep(1); // 单位可以自定义,more convinent

示例二:

//如果lock不可用,则以下代码将在50毫秒内超时:
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) 
posted @ 2022-01-13 19:46  至安  阅读(238)  评论(0编辑  收藏  举报