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 ( ); } ImplementationsFutureTask , ScheduledFuture Returned ByToo many methods to list. |