public enum TimeUnit extends Enum<TimeUnit>
TimeUnit
は、指定された粒度単位でデュレーションを表し、単位を変換したり、それらの単位でタイミングおよび遅延操作を実行したりするユーティリティ・メソッドを提供します。TimeUnit
は、時間情報を保持せず、さまざまなコンテキスト間で独立して保持される時間表現の整理および使用だけを行うことができます。ナノ秒はマイクロ秒の1000分の1、マイクロ秒はミリ秒の1000分の1、ミリ秒は秒の1000分の1、分は60秒、時は60分、日は24時間としてそれぞれ定義されます。
TimeUnit
は、主に時間ベースのメソッドに対して、指定されたタイミング・パラメータの解釈方法を指示するために使用します。たとえば、lock
が使用できない場合、次のコードは50ミリ秒でタイム・アウトします。
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...
一方、次のコードは、50秒でタイム・アウトします。
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.SECONDS)) ...
ただし、特定のタイム・アウト実装で、指定されたTimeUnit
と同じ粒度で時間経過を通知できる保証はないことに注意してください。列挙型定数と説明 |
---|
DAYS
24時間を表す時間単位
|
HOURS
60分を表す時間単位
|
MICROSECONDS
ミリ秒の1000分の1を表す時間単位
|
MILLISECONDS
秒の1000分の1を表す時間単位
|
MINUTES
60秒を表す時間単位
|
NANOSECONDS
マイクロ秒の1000分の1を表す時間単位
|
SECONDS
1秒を表す時間単位
|
修飾子と型 | メソッドと説明 |
---|---|
long |
convert(long sourceDuration, TimeUnit sourceUnit)
指定された単位による指定されたデュレーションを、この単位に変換します。
|
void |
sleep(long timeout)
この時間単位を使用して、
Thread.sleep を実行します。 |
void |
timedJoin(Thread thread, long timeout)
この時間単位を使用して、時間指定された
Thread.join を実行します。 |
void |
timedWait(Object obj, long timeout)
この時間単位を使用して、時間指定された
Object.wait を実行します。 |
long |
toDays(long duration)
|
long |
toHours(long duration)
|
long |
toMicros(long duration)
|
long |
toMillis(long duration)
|
long |
toMinutes(long duration)
|
long |
toNanos(long duration)
|
long |
toSeconds(long duration)
|
static TimeUnit |
valueOf(String name)
指定された名前を持つ、この型の列挙型定数を返します。
|
static TimeUnit[] |
values()
この列挙型の定数を含む配列を、宣言されている順序で返します。
|
public static final TimeUnit NANOSECONDS
public static final TimeUnit MICROSECONDS
public static final TimeUnit MILLISECONDS
public static final TimeUnit SECONDS
public static final TimeUnit MINUTES
public static final TimeUnit HOURS
public static final TimeUnit DAYS
public static TimeUnit[] values()
for (TimeUnit c : TimeUnit.values()) System.out.println(c);
public static TimeUnit valueOf(String name)
name
- 返される列挙型定数の名前。IllegalArgumentException
- 指定された名前を持つ定数をこの列挙型が持っていない場合NullPointerException
- 引数がnullの場合public long convert(long sourceDuration, TimeUnit sourceUnit)
999
ミリ秒を秒に変換すると0
になります。粒度の粗いほうから細かいほうへの変換で、数値的にオーバーフローが発生する引数を指定すると、負の場合はLong.MIN_VALUE
、正の場合はLong.MAX_VALUE
になります。
たとえば、10分をミリ秒に変換するには、TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
を使用します。
sourceDuration
- 指定されたsourceUnit
でのデュレーションsourceUnit
- sourceDuration
引数の単位Long.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toNanos(long duration)
duration
- デュレーションLong.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toMicros(long duration)
duration
- デュレーションLong.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toMillis(long duration)
duration
- デュレーションLong.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toSeconds(long duration)
duration
- デュレーションLong.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toMinutes(long duration)
duration
- デュレーションLong.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toHours(long duration)
duration
- デュレーションLong.MIN_VALUE
、正にオーバーフローする場合はLong.MAX_VALUE
。public long toDays(long duration)
duration
- デュレーションpublic void timedWait(Object obj, long timeout) throws InterruptedException
Object.wait
を実行します。このメソッドは、timeout引数をObject.wait
メソッドで要求される形式に変換する簡易メソッドです。
たとえば、次を使用して、ブロックするpoll
メソッドを実装できます(BlockingQueue.poll
を参照)。
public synchronized Object poll(long timeout, TimeUnit unit)
throws InterruptedException {
while (empty) {
unit.timedWait(this, timeout);
...
}
}
obj
- 待機するオブジェクトtimeout
- 待機する最長時間。ゼロまたはそれより小さい場合は待機しない。InterruptedException
- 待機中に割込みが発生した場合public void timedJoin(Thread thread, long timeout) throws InterruptedException
Thread.join
を実行します。このメソッドは、time引数をThread.join
メソッドで要求される形式に変換する簡易メソッドです。thread
- 待機するスレッドtimeout
- 待機する最長時間。ゼロまたはそれより小さい場合は待機しない。InterruptedException
- 待機中に割込みが発生した場合public void sleep(long timeout) throws InterruptedException
Thread.sleep
を実行します。これは、time引数をThread.sleep
メソッドで要求される形式に変換する簡易メソッドです。timeout
- スリープする最小時間。ゼロまたはそれより小さい場合はスリープしない。InterruptedException
- スリープ中に割込みが発生した場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.