FutureV


Future<V> java.util.concurrent

Java 5.0

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  ( );   } 

Implementations

FutureTask , ScheduledFuture

Returned By

Too many methods to list.



Java In A Nutshell
Java In A Nutshell, 5th Edition
ISBN: 0596007736
EAN: 2147483647
Year: 2004
Pages: 1220

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net