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; }
   }
 }
 
 
 Memory consistency effects: Actions taken by the asynchronous computation
  happen-before actions following the corresponding
 Future.get() in another thread.
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 complete@Nullable V get() throws InterruptedException, ExecutionException
CancellationException - if the computation was cancelledExecutionException - if the computation threw an exceptionInterruptedException - if the current thread was interrupted while waiting@Nullable V 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 outboolean isCancelled()
boolean isDone()