JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
列挙型 TimeUnit

java.lang.Object
  上位を拡張 java.lang.Enum<TimeUnit>
      上位を拡張 java.util.concurrent.TimeUnit
すべての実装されたインタフェース:
Serializable, Comparable<TimeUnit>

public enum TimeUnit
extends Enum<TimeUnit>

TimeUnit は、期間を指定された粒度単位で表します。これは、単位間の変換を行い、これらの単位でタイミングおよび遅延操作を実行するユーティリティメソッドを提供します。TimeUnit は時間情報を管理しませんが、さまざまなコンテキスト間で別個に管理される時間表現を整理および使用するのに役立ちます。

TimeUnit は、主に時間ベースのメソッドに、指定されたタイミングパラメータを解釈する方法を指示する場合に使用します。たとえば次のコードは、ロックが使用できない場合、50 ミリ秒後にタイムアウトします。

  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
 
このコードが 50 秒後にタイムアウトする場合:

  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
 
ただし、特定のタイムアウト実装が、指定された TimeUnit と同じ粒度で時間経過を通知できるという保証はありません。

導入されたバージョン:
1.5

列挙型定数の概要
MICROSECONDS
           
MILLISECONDS
           
NANOSECONDS
           
SECONDS
           
 
メソッドの概要
 long convert(long duration, TimeUnit unit)
          指定された単位で表される指定された期間を、この単位に変換します。
 void sleep(long timeout)
          この単位を使用して、Thread.sleep を実行します。
 void timedJoin(Thread thread, long timeout)
          この時間単位を使用して、時間指定された Thread.join を実行します。
 void timedWait(Object obj, long timeout)
          この時間単位を使用して、時間指定された Object.wait を実行します。
 long toMicros(long duration)
          MICROSECONDS.convert(duration, this) と等価です。
 long toMillis(long duration)
          MILLISECONDS.convert(duration, this) と等価です。
 long toNanos(long duration)
          NANOSECONDS.convert(duration, this) と等価です。
 long toSeconds(long duration)
          SECONDS.convert(duration, this) と等価です。
static TimeUnit valueOf(String name)
          指定した名前を持つこの型の列挙型定数を返します。
static TimeUnit[] values()
          この列挙型の定数を含む配列を宣言されている順序で返します。
 
クラス java.lang.Enum から継承されたメソッド
clone, compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

列挙型定数の詳細

NANOSECONDS

public static final TimeUnit NANOSECONDS

MICROSECONDS

public static final TimeUnit MICROSECONDS

MILLISECONDS

public static final TimeUnit MILLISECONDS

SECONDS

public static final TimeUnit SECONDS
メソッドの詳細

values

public static final TimeUnit[] values()
この列挙型の定数を含む配列を宣言されている順序で返します。 このメソッドは次のようにして定数を反復するために使用できます:
for(TimeUnit c : TimeUnit.values())
        System.out.println(c);

戻り値:
この列挙型の定数を宣言されている順序で含む配列

valueOf

public static TimeUnit valueOf(String name)
指定した名前を持つこの型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に 一致している必要があります (余分な空白文字を含めることはできません)。

パラメータ:
name - 返される列挙型定数の名前
戻り値:
指定された名前を持つ列挙型定数
例外:
IllegalArgumentException - 指定された名前を持つ定数を この列挙型が持っていない場合

convert

public long convert(long duration,
                    TimeUnit unit)
指定された単位で表される指定された期間を、この単位に変換します。密から粗の粒度に変換すると、切り捨てが行われて精度が失われます。たとえば、999 ミリ秒を秒に変換すると、0 になります。数値がオーバーフローする引数を使用して粗から密の粒度に変換すると、飽和して負の場合は Long.MIN_VALUE、正の場合は Long.MAX_VALUE になります。

パラメータ:
duration - 指定された unit の期間
unit - duration 引数の単位
戻り値:
この単位で変換された期間。変換が負でオーバーフローする場合は Long.MIN_VALUE、正でオーバーフローする場合は Long.MAX_VALUE

toNanos

public long toNanos(long duration)
NANOSECONDS.convert(duration, this) と等価です。

パラメータ:
duration - 期間
戻り値:
変換された期間。変換が負でオーバーフローする場合は Long.MIN_VALUE、正でオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toMicros

public long toMicros(long duration)
MICROSECONDS.convert(duration, this) と等価です。

パラメータ:
duration - 期間
戻り値:
変換された期間。変換が負でオーバーフローする場合は Long.MIN_VALUE、正でオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toMillis

public long toMillis(long duration)
MILLISECONDS.convert(duration, this) と等価です。

パラメータ:
duration - 期間
戻り値:
変換された期間。変換が負でオーバーフローする場合は Long.MIN_VALUE、正でオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toSeconds

public long toSeconds(long duration)
SECONDS.convert(duration, this) と等価です。

パラメータ:
duration - 期間
戻り値:
変換された期間
関連項目:
convert(long, java.util.concurrent.TimeUnit)

timedWait

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 - 待機中に割り込みが発生した場合
関連項目:
Object.wait(long, int)

timedJoin

public void timedJoin(Thread thread,
                      long timeout)
               throws InterruptedException
この時間単位を使用して、時間指定された Thread.join を実行します。これは、time 引数を Thread.join メソッドの要求形式に変換する便利なメソッドです。

パラメータ:
thread - 待機するスレッド
timeout - 待機する最長時間
例外:
InterruptedException - 待機中に割り込みが発生した場合
関連項目:
Thread.join(long, int)

sleep

public void sleep(long timeout)
           throws InterruptedException
この単位を使用して、Thread.sleep を実行します。これは、time 引数を Thread.sleep メソッドの要求形式に変換する便利なメソッドです。

パラメータ:
timeout - スリープする最短時間
例外:
InterruptedException - スリープ中に割り込みが発生した場合
関連項目:
Thread.sleep(long)

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。