com.google.common.util.concurrent
Class AbstractListeningExecutorService

java.lang.Object
  extended by com.google.common.util.concurrent.AbstractListeningExecutorService
All Implemented Interfaces:
ListeningExecutorService, java.util.concurrent.Executor, java.util.concurrent.ExecutorService

@Beta
public abstract class AbstractListeningExecutorService
extends java.lang.Object
implements ListeningExecutorService

Implements ListeningExecutorService execution methods atop the abstract Executor.execute(java.lang.Runnable) method. More concretely, the submit, invokeAny and invokeAll methods create ListenableFutureTask instances and pass them to Executor.execute(java.lang.Runnable).

In addition to Executor.execute(java.lang.Runnable), subclasses must implement all methods related to shutdown and termination.

Since:
14.0

Constructor Summary
AbstractListeningExecutorService()
           
 
Method Summary
<T> java.util.List<java.util.concurrent.Future<T>>
invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
          
<T> java.util.List<java.util.concurrent.Future<T>>
invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)
          
<T> T
invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
           
<T> T
invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)
           
<T> ListenableFuture<T>
submit(java.util.concurrent.Callable<T> task)
           
 ListenableFuture<?> submit(java.lang.Runnable task)
           
<T> ListenableFuture<T>
submit(java.lang.Runnable task, T result)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.concurrent.ExecutorService
awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow
 
Methods inherited from interface java.util.concurrent.Executor
execute
 

Constructor Detail

AbstractListeningExecutorService

public AbstractListeningExecutorService()
Method Detail

submit

public ListenableFuture<?> submit(java.lang.Runnable task)
Specified by:
submit in interface ListeningExecutorService
Specified by:
submit in interface java.util.concurrent.ExecutorService
Returns:
a ListenableFuture representing pending completion of the task

submit

public <T> ListenableFuture<T> submit(java.lang.Runnable task,
                                      @Nullable
                                      T result)
Specified by:
submit in interface ListeningExecutorService
Specified by:
submit in interface java.util.concurrent.ExecutorService
Returns:
a ListenableFuture representing pending completion of the task

submit

public <T> ListenableFuture<T> submit(java.util.concurrent.Callable<T> task)
Specified by:
submit in interface ListeningExecutorService
Specified by:
submit in interface java.util.concurrent.ExecutorService
Returns:
a ListenableFuture representing pending completion of the task

invokeAny

public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
            throws java.lang.InterruptedException,
                   java.util.concurrent.ExecutionException
Specified by:
invokeAny in interface java.util.concurrent.ExecutorService
Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException

invokeAny

public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
                       long timeout,
                       java.util.concurrent.TimeUnit unit)
            throws java.lang.InterruptedException,
                   java.util.concurrent.ExecutionException,
                   java.util.concurrent.TimeoutException
Specified by:
invokeAny in interface java.util.concurrent.ExecutorService
Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException

invokeAll

public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
                                                         throws java.lang.InterruptedException
Description copied from interface: ListeningExecutorService

All elements in the returned list must be ListenableFuture instances.

Specified by:
invokeAll in interface ListeningExecutorService
Specified by:
invokeAll in interface java.util.concurrent.ExecutorService
Returns:
A list of ListenableFuture instances representing the tasks, in the same sequential order as produced by the iterator for the given task list, each of which has completed.
Throws:
java.lang.InterruptedException

invokeAll

public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
                                                                    long timeout,
                                                                    java.util.concurrent.TimeUnit unit)
                                                         throws java.lang.InterruptedException
Description copied from interface: ListeningExecutorService

All elements in the returned list must be ListenableFuture instances.

Specified by:
invokeAll in interface ListeningExecutorService
Specified by:
invokeAll in interface java.util.concurrent.ExecutorService
Returns:
a list of ListenableFuture instances representing the tasks, in the same sequential order as produced by the iterator for the given task list. If the operation did not time out, each task will have completed. If it did time out, some of these tasks will not have completed.
Throws:
java.lang.InterruptedException