Team LiB
Previous Section Next Section

ExecutorCompletionService<V>java.util.concurrent

Java 5.0

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.

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;  
}

    Team LiB
    Previous Section Next Section