This interface represents the result of a
computation that may not be available until some time in the future.
Future is a generic type, with a type variable
V. V represents
the type of the future value to be returned by the get(
) method. A Future<V> value is
typically obtained by submitting a
Callable<V> to an
ExecutorService for asynchronous execution.
The key method of the Future interface is
get( ). It returns the result (of type
V) of the computation, blocking, if
necessary, until that result is ready. get( )
throws a CancellationException if the computation
is canceled with the cancel( ) method before it
completes. If the computation throws an exception of its own (as the
Callable.call( ) method can), get(
) tHRows an ExecutionException wrapped
around that exception. Additionally, the timed version of the
get( ) method throws a
TimeoutException if the timeout elapses before the
computation completes.
As noted above, the computation represented by a
Future object can be canceled by calling its
cancel( ) method. This method returns
true if the computation was canceled successfully,
and false otherwise. If you pass
false to cancel( ), any
computation that has started running is allowed to complete. In this
case, only computations that have not yet started can be canceled. If
you pass true to the cancel( )
method, running computations are interrupted with
Thread.interrupt( ). Note, however, that
interrupting a thread does not guarantee that it will stop running.
isCancelled( ) returns true if
a Future was canceled before it completed (either
by returning a value or throwing an exception). isDone(
) returns true if the computation
represented by a Future is finished running. This
may be because it returned a value, threw an exception, or was
canceled. If isDone( ) returns
true, the get( ) method does
not block.
public interface Future<V> {
// Public Instance Methods
boolean cancel(boolean mayInterruptIfRunning);
V get( ) throws InterruptedException, ExecutionException;
V get(long timeout, TimeUnit unit) throws InterruptedException,
ExecutionException, TimeoutException;
boolean isCancelled( );
boolean isDone( );
}
Too many methods to list.