Name

ExecutorCompletionService<V>

Synopsis

This class implements the CompletionService interface, which uses an Executor object passed to its constructor for executing the tasks passed to its submit( ) method. As these tasks complete, their result (or exception) is placed, in the form of a Future object, on an internal queue and becomes available for removal with the blocking take( ) method or the nonblocking or timed poll( ) methods.

This class is useful when you want to execute a number of tasks concurrently and want to process their results in whatever order they complete. See Executors for a source of Executor objects to use with this class.

java.util.concurrent.ExecutorCompletionService<V>

Figure 16-83. java.util.concurrent.ExecutorCompletionService<V>

public class ExecutorCompletionService<V> implements CompletionService<V> {
// Public Constructors
     public ExecutorCompletionService(Executor executor);  
     public ExecutorCompletionService(Executor executor, BlockingQueue<Future<V>> 
        completionQueue);  
// Methods Implementing CompletionService
     public Future<V> poll( );  
     public Future<V> poll(long timeout, TimeUnit unit) throws InterruptedException;  
     public Future<V> submit(Callable<V> task);  
     public Future<V> submit(Runnable task, V result);  
     public Future<V> take( ) throws InterruptedException;  
}

Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.