JavaTM 2 Platform
Standard Ed. 6

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 主要用於通知基於時間的方法如何解釋給定的計時參數。例如,如果 lock 不可用,則以下程式碼將在 50 毫秒後逾時:

  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
 
而以下程式碼將在 50 秒後逾時:
  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
 
但是注意,不保證特定逾時實作能夠以與給定 TimeUnit 相同的粒度通知 段。

從以下版本開始:
1.5

列舉常數摘要
DAYS
           
HOURS
           
MICROSECONDS
           
MILLISECONDS
           
MINUTES
           
NANOSECONDS
           
SECONDS
           
 
方法摘要
 long convert(long sourceDuration, TimeUnit sourceUnit)
          將給定單元的時間段轉換到此單元。
 void sleep(long timeout)
          使用此單元執行 Thread.sleep.這是將時間參數轉換為 Thread.sleep 方法所需格式的便捷方法。
 void timedJoin(Thread thread, long timeout)
          使用此時間單元執行計時的 Thread.join
 void timedWait(Object obj, long timeout)
          使用此時間單元執行計時的 Object.wait
 long toDays(long duration)
          等效於 DAYS.convert(duration, this)
 long toHours(long duration)
          等效於 HOURS.convert(duration, this)
 long toMicros(long duration)
          等效於 MICROSECONDS.convert(duration, this)
 long toMillis(long duration)
          等效於 MILLISECONDS.convert(duration, this)
 long toMinutes(long duration)
          等效於 MINUTES.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()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
從類別 java.lang.Enum 繼承的方法
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
從類別 java.lang.Object 繼承的方法
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

MINUTES

public static final TimeUnit MINUTES

HOURS

public static final TimeUnit HOURS

DAYS

public static final TimeUnit DAYS
方法詳細資訊

values

public static final TimeUnit[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for(TimeUnit c : TimeUnit.values())
        System.out.println(c);

返回:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static TimeUnit valueOf(String name)
返回帶有指定名稱的該型別的列舉常數。 字元串必須與用於宣告該型別的列舉常數的 標識符完全比對。(不允許有多餘 的空格。)

參數:
指定要返回的列舉常數的名稱。 -
返回:
返回帶有指定名稱的列舉常數
拋出:
如果該列舉型別沒有帶有指定名稱的常數, - 則拋出 IllegalArgumentException

convert

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

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 - 時間段
返回:
轉換時間段;如果轉換將負溢位,則返回 Long.MIN_VALUE;如果轉換將正溢位,則返回 Long.MAX_VALUE
另請參見:
convert(long, java.util.concurrent.TimeUnit)

toMinutes

public long toMinutes(long duration)
等效於 MINUTES.convert(duration, this)

參數:
duration - 時間段
返回:
轉換時間段;如果轉換將負溢位,則返回 Long.MIN_VALUE;如果轉換將正溢位,則返回 Long.MAX_VALUE
從以下版本開始:
1.6
另請參見:
convert(long, java.util.concurrent.TimeUnit)

toHours

public long toHours(long duration)
等效於 HOURS.convert(duration, this)

參數:
duration - 時間段
返回:
轉換時間段;如果轉換將負溢位,則返回 Long.MIN_VALUE;如果轉換將正溢位,則返回 Long.MAX_VALUE
從以下版本開始:
1.6
另請參見:
convert(long, java.util.concurrent.TimeUnit)

toDays

public long toDays(long duration)
等效於 DAYS.convert(duration, this)

參數:
duration - 時間段
返回:
轉換時間段
從以下版本開始:
1.6
另請參見:
convert(long, java.util.concurrent.TimeUnit)

timedWait

public void timedWait(Object obj,
                      long timeout)
               throws InterruptedException
使用此時間單元執行計時的 Object.wait。這是將逾時參數轉換為 Object.wait 方法所需格式的便捷方法。

例如,可以使用以下程式碼實作阻塞 poll 方法(參見 BlockingQueue.poll):

  public synchronized  Object poll(long timeout, TimeUnit unit) throws InterruptedException {
    while (empty) {
      unit.timedWait(this, timeout);
      ...
    }
  }

參數:
obj - 要等待的物件
timeout - 要等待的最長時間。如果小於等於 0,則根本不會等待。
拋出:
InterruptedException - 如果等待時中斷。
另請參見:
Object.wait(long, int)

timedJoin

public void timedJoin(Thread thread,
                      long timeout)
               throws InterruptedException
使用此時間單元執行計時的 Thread.join。這是將時間參數轉換為 Thread.join 方法所需格式的便捷方法。

參數:
thread - 要等待的執行緒
timeout - 要等待的最長時間。如果小於等於 0,則根本不會等待。
拋出:
InterruptedException - 如果等待時中斷。
另請參見:
Thread.join(long, int)

sleep

public void sleep(long timeout)
           throws InterruptedException
使用此單元執行 Thread.sleep.這是將時間參數轉換為 Thread.sleep 方法所需格式的便捷方法。

參數:
timeout - 休眠的最短時間。如果小於等於 0,則根本不會休眠。
拋出:
InterruptedException - 如果休眠時中斷。
另請參見:
Thread.sleep(long)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only