java timeunit_java11教程--类TimeUnit用法

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

TimeUnit不保留时间信息,但仅帮助组织和使用可在各种上下文中单独维护的时间表示。

纳秒定义为千分之一微秒,微秒为千分之一毫秒,毫秒为千分之一秒,一分钟为六十秒,一小时为六十分钟,一天为二十四小时。

TimeUnit主要用于通知基于时间的方法如何解释给定的定时参数。 例如,如果lock不可用,则以下代码将在50毫秒内超时:

Lock lock = ...; if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...

而此代码将在50秒内超时:

Lock lock = ...; if (lock.tryLock(50L, TimeUnit.SECONDS)) ...

但请注意,无法保证特定的超时实现能够以与给定的TimeUnit相同的粒度注意到时间的TimeUnit 。

时间单位代表二十四小时。

时间单位代表六十分钟。

时间单位代表千分之一毫秒。

时间单位代表千分之一秒。

时间单位代表六十秒。

时间单位代表千分之一微秒。

时间单位代表一秒。

将给定单位的给定持续时间转换为此单位。

将给定的持续时间转换为此单位。

ChronoUnit转换为等效值

TimeUnit 。

使用此时间单位执行

Thread.sleep 。

使用此时间单位执行定时

Thread.join 。

使用此时间单位执行定时

Object.wait 。

将此

TimeUnit转换为等效值

ChronoUnit 。

相当于

DAYS.convert(duration, this) 。

相当于

HOURS.convert(duration, this) 。

相当于

MICROSECONDS.convert(duration, this) 。

相当于

MILLISECONDS.convert(duration, this) 。

相当于

MINUTES.convert(duration, this) 。

相当于

NANOSECONDS.convert(duration, this) 。

相当于

SECONDS.convert(duration, this) 。

返回具有指定名称的此类型的枚举常量。

按照声明的顺序返回一个包含此枚举类型常量的数组。

时间单位代表千分之一微秒。

时间单位代表千分之一毫秒。

时间单位代表千分之一秒。

时间单位代表一秒。

时间单位代表六十秒。

时间单位代表六十分钟。

时间单位代表二十四小时。

按照声明的顺序返回一个包含此枚举类型常量的数组。

此方法可用于迭代常量,如下所示:

for (TimeUnit c : TimeUnit.values())

System.out.println(c);

返回具有指定名称的此类型的枚举常量。

该字符串必须与用于声明此类型中的枚举常量的标识符完全匹配。

(不允许使用无关的空白字符。)

将给定单位的给定持续时间转换为此单位。

从较细粒度到较粗粒度的转换会截断,因此会失去精度。

例如,将999毫秒转换为秒会导致0 。

从粗略到更细粒度的转换,如果为负,则数值溢出的参数饱和为Long.MIN_VALUE如果为正, Long.MAX_VALUE 。

例如,要将10分钟转换为毫秒,请使用: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)

将给定的持续时间转换为此单位。

对于任何TIMEUNIT unit , unit.convert(Duration.ofNanos(n))相当于unit.convert(n, NANOSECONDS) ,和unit.convert(Duration.of(n, unit.toChronoUnit()))相当于n (在没有溢出的)。

使用此时间单位执行定时Object.wait 。

这是一种便捷方法,可将超时参数转换为Object.wait方法所需的Object.wait 。

例如,您可以使用poll方法实现阻止poll方法(请参阅BlockingQueue.poll ):

public E poll(long timeout, TimeUnit unit) throws InterruptedException { synchronized (lock) { while (isEmpty()) { unit.timedWait(lock, timeout); ... } } }

使用此时间单位执行定时Thread.join 。

这是一种便捷方法,可将时间参数转换为Thread.join方法所需的Thread.join 。

这是一种便捷方法,可将时间参数转换为Thread.sleep方法所需的Thread.sleep 。

将此

TimeUnit转换为等效值

ChronoUnit 。

ChronoUnit转换为等效的

TimeUnit 。

Enum Constants

Enum Constant

描述

时间单位代表二十四小时。

时间单位代表六十分钟。

时间单位代表千分之一毫秒。

时间单位代表千分之一秒。

时间单位代表六十秒。

时间单位代表千分之一微秒。

时间单位代表一秒。变量和类型

方法

描述

long

TimeUnit sourceUnit)

将给定单位的给定持续时间转换为此单位。

long

将给定的持续时间转换为此单位。

ChronoUnit chronoUnit)

ChronoUnit转换为等效值

TimeUnit 。

void

void

Thread thread, long timeout)

使用此时间单位执行定时

Thread.join 。

void

Object obj, long timeout)

使用此时间单位执行定时

Object.wait 。

将此

TimeUnit转换为等效值

ChronoUnit 。

返回具有指定名称的此类型的枚举常量。

static TimeUnit[]

按照声明的顺序返回一个包含此枚举类型常量的数组。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值