|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.concurrent.FutureTask<V>
V
- The result type returned by this FutureTask's get methodpublic class FutureTask<V>
A cancellable asynchronous computation. This class provides a base
implementation of Future
, with methods to start and cancel
a computation, query to see if the computation is complete, and
retrieve the result of the computation. The result can only be
retrieved when the computation has completed; the get
method will block if the computation has not yet completed. Once
the computation has completed, the computation cannot be restarted
or cancelled.
A FutureTask can be used to wrap a Callable
or
Runnable
object. Because FutureTask
implements Runnable, a FutureTask can be
submitted to an Executor
for execution.
In addition to serving as a standalone class, this class provides protected functionality that may be useful when creating customized task classes.
Constructor Summary | |
---|---|
FutureTask(Callable<V> callable)
Creates a FutureTask that will upon running, execute the given Callable. |
|
FutureTask(Runnable runnable,
V result)
Creates a FutureTask that will upon running, execute the given Runnable, and arrange that get will return the given result on successful completion. |
Method Summary | |
---|---|
boolean |
cancel(boolean mayInterruptIfRunning)
Attempts to cancel execution of this task. |
protected void |
done()
Protected method invoked when this task transitions to state isDone (whether normally or via cancellation). |
V |
get()
Waits if necessary for the computation to complete, and then retrieves its result. |
V |
get(long timeout,
TimeUnit unit)
Waits if necessary for at most the given time for the computation to complete, and then retrieves its result, if available. |
boolean |
isCancelled()
Returns true if this task was cancelled before it completed normally. |
boolean |
isDone()
Returns true if this task completed. |
void |
run()
Sets this Future to the result of computation unless it has been cancelled. |
protected boolean |
runAndReset()
Executes the computation without setting its result, and then resets this Future to initial state, failing to do so if the computation encounters an exception or is cancelled. |
protected void |
set(V v)
Sets the result of this Future to the given value unless this future has already been set or has been cancelled. |
protected void |
setException(Throwable t)
Causes this future to report an ExecutionException with the given throwable as its cause, unless this Future has already been set or has been cancelled. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public FutureTask(Callable<V> callable)
callable
- the callable task
NullPointerException
- if callable is nullpublic FutureTask(Runnable runnable, V result)
runnable
- the runnable taskresult
- the result to return on successful completion. If
you don't need a particular result, consider using
constructions of the form:
Future<?> f = new FutureTask<Object>(runnable, null)
NullPointerException
- if runnable is nullMethod Detail |
---|
public boolean isCancelled()
Future
isCancelled
in interface Future<V>
public boolean isDone()
Future
isDone
in interface Future<V>
public boolean cancel(boolean mayInterruptIfRunning)
Future
cancel
in interface Future<V>
mayInterruptIfRunning
- true if the thread executing this
task should be interrupted; otherwise, in-progress tasks are allowed
to complete
public V get() throws InterruptedException, ExecutionException
Future
get
in interface Future<V>
InterruptedException
- if the current thread was interrupted
while waiting
ExecutionException
- if the computation threw an
exceptionpublic V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
Future
get
in interface Future<V>
timeout
- the maximum time to waitunit
- the time unit of the timeout argument
InterruptedException
- if the current thread was interrupted
while waiting
ExecutionException
- if the computation threw an
exception
TimeoutException
- if the wait timed outprotected void done()
protected void set(V v)
v
- the valueprotected void setException(Throwable t)
t
- the cause of failure.public void run()
run
in interface Runnable
Thread.run()
protected boolean runAndReset()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.