This interface combines the features of an ExecutorService with the features of a BlockingQueue . A producer thread may submit Callable or Runnable tasks for asynchronous execution. As each submitted task completes, its result, in the form of a Future object, becomes available to be removed from the queue by a consumer thread that calls poll( ) or take( ) . This generic type declares a type variable V , which represents the result type of all tasks on the queue. public interface CompletionService<V> { // Public Instance Methods Future<V> poll ( ); Future<V> poll (long timeout , TimeUnit unit ) throws InterruptedException; Future<V> submit (Callable<V> task ); Future<V> submit (Runnable task , V result ); Future<V> take ( ) throws InterruptedException; } ImplementationsExecutorCompletionService |