V - The result type returned by this Future's get methodpublic interface Future<V>
Future<?> and
 return null as a result of the underlying task.
 Sample Usage (Note that the following classes are all made-up.)
 interface ArchiveSearcher { String search(String target); }
 class App {
   ExecutorService executor = ...
   ArchiveSearcher searcher = ...
   void showSearch(final String target)
       throws InterruptedException {
     Future<String> future
       = executor.submit(new Callable<String>() {
         public String call() {
             return searcher.search(target);
         }});
     displayOtherThings(); // do other things while searching
     try {
       displayText(future.get()); // use future
     } catch (ExecutionException ex) { cleanup(); return; }
   }
 }
 The FutureTask class is an implementation of Future that
 implements Runnable, and so may be executed by an Executor.
 For example, the above construction with submit could be replaced by:
   FutureTask<String> future =
       new FutureTask<String>(new Callable<String>() {
         public String call() {
           return searcher.search(target);
       }});
     executor.execute(future);
 Memory consistency effects: Actions taken by the asynchronous computation
  happen-before
 actions following the corresponding Future.get() in another thread.
FutureTask, 
Executor| Modifier and Type | Method and Description | 
|---|---|
| boolean | cancel(boolean mayInterruptIfRunning)Attempts to cancel execution of this task. | 
| 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. | 
boolean cancel(boolean mayInterruptIfRunning)
After this method returns, subsequent calls to isDone() will
 always return true.  Subsequent calls to isCancelled()
 will always return true if this method returned true.
mayInterruptIfRunning - true if the thread executing this
 task should be interrupted; otherwise, in-progress tasks are allowed
 to completeboolean isCancelled()
boolean isDone()
V get() throws InterruptedException, ExecutionException
CancellationException - if the computation was cancelledExecutionException - if the computation threw an
 exceptionInterruptedException - if the current thread was interrupted
 while waitingV get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
timeout - the maximum time to waitunit - the time unit of the timeout argumentCancellationException - if the computation was cancelledExecutionException - if the computation threw an
 exceptionInterruptedException - if the current thread was interrupted
 while waitingTimeoutException - if the wait timed out Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates.  All rights reserved.