|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--edu.emory.mathcs.util.concurrent.TimeUnit
A TimeUnit represents time durations at a given unit of granularity and provides utility methods to convert across units, and to perform timing and delay operations in these units. A TimeUnit does not maintain time information, but only helps organize and use time representations that may be maintained separately across various contexts.
A TimeUnit is mainly used to inform time-based methods
how a given timing parameter should be interpreted. For example,
the following code will timeout in 50 milliseconds if the lock
is not available:
Lock lock = ...; if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...while this code will timeout in 50 seconds:
Lock lock = ...; if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...Note however, that there is no guarantee that a particular timeout implementation will be able to notice the passage of time at the same granularity as the given TimeUnit.
Field Summary | |
static TimeUnit |
MICROSECONDS
|
static TimeUnit |
MILLISECONDS
|
static TimeUnit |
NANOSECONDS
|
static TimeUnit |
SECONDS
|
Method Summary | |
long |
convert(long duration,
TimeUnit unit)
Convert the given time duration in the given unit to this unit. |
void |
sleep(long timeout)
Perform a Thread.sleep using this unit. |
void |
timedJoin(java.lang.Thread thread,
long timeout)
Perform a timed Thread.join using this time unit. |
void |
timedWait(java.lang.Object obj,
long timeout)
Perform a timed Object.wait using this time unit. |
long |
toMicros(long duration)
Equivalent to MICROSECONDS.convert(duration, this). |
long |
toMillis(long duration)
Equivalent to MILLISECONDS.convert(duration, this). |
long |
toNanos(long duration)
Equivalent to NANOSECONDS.convert(duration, this). |
long |
toSeconds(long duration)
Equivalent to SECONDS.convert(duration, this). |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final TimeUnit NANOSECONDS
public static final TimeUnit MICROSECONDS
public static final TimeUnit MILLISECONDS
public static final TimeUnit SECONDS
Method Detail |
public long convert(long duration, TimeUnit unit)
duration
- the time duration in the given unitunit
- the unit of the duration argument
public long toNanos(long duration)
duration
- the duration
convert(long, edu.emory.mathcs.util.concurrent.TimeUnit)
public long toMicros(long duration)
duration
- the duration
convert(long, edu.emory.mathcs.util.concurrent.TimeUnit)
public long toMillis(long duration)
duration
- the duration
convert(long, edu.emory.mathcs.util.concurrent.TimeUnit)
public long toSeconds(long duration)
duration
- the duration
convert(long, edu.emory.mathcs.util.concurrent.TimeUnit)
public void timedWait(java.lang.Object obj, long timeout) throws java.lang.InterruptedException
For example, you could implement a blocking poll
method (see BlockingQueue.poll
)
using:
public synchronized Object poll(long timeout, TimeUnit unit) throws InterruptedException { while (empty) { unit.timedWait(this, timeout); ... } }
obj
- the object to wait ontimeout
- the maximum time to wait.
java.lang.InterruptedException
- if interrupted while waiting.Object.wait(long, int)
public void timedJoin(java.lang.Thread thread, long timeout) throws java.lang.InterruptedException
thread
- the thread to wait fortimeout
- the maximum time to wait
java.lang.InterruptedException
- if interrupted while waiting.Thread.join(long, int)
public void sleep(long timeout) throws java.lang.InterruptedException
timeout
- the minimum time to sleep
java.lang.InterruptedException
- if interrupted while sleeping.Thread.sleep(long)
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |