T | 
CompletableFuture.get() | 
 Waits if necessary for this future to complete, and then
 returns its result. 
 | 
T | 
CompletableFuture.get(long timeout,
   TimeUnit unit) | 
 Waits if necessary for at most the given time for this future
 to complete, and then returns its result, if available. 
 | 
V | 
ForkJoinTask.get() | 
 Waits if necessary for the computation to complete, and then
 retrieves its result. 
 | 
V | 
ForkJoinTask.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. 
 | 
V | 
Future.get() | 
 Waits if necessary for the computation to complete, and then
 retrieves its result. 
 | 
V | 
Future.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. 
 | 
V | 
FutureTask.get() | 
  | 
V | 
FutureTask.get(long timeout,
   TimeUnit unit) | 
  | 
<T> T | 
ExecutorService.invokeAny(Collection<? extends Callable<T>> tasks) | 
 Executes the given tasks, returning the result
 of one that has completed successfully (i.e., without throwing
 an exception), if any do. 
 | 
<T> T | 
ExecutorService.invokeAny(Collection<? extends Callable<T>> tasks,
         long timeout,
         TimeUnit unit) | 
 Executes the given tasks, returning the result
 of one that has completed successfully (i.e., without throwing
 an exception), if any do before the given timeout elapses. 
 |