public interface CompletionService<V>
submit tasks for execution. Consumers take
 completed tasks and process their results in the order they
 complete.  A CompletionService can for example be used to
 manage asynchronous I/O, in which tasks that perform reads are
 submitted in one part of a program or system, and then acted upon
 in a different part of the program when the reads complete,
 possibly in a different order than they were requested.
 Typically, a CompletionService relies on a separate
 Executor to actually execute the tasks, in which case the
 CompletionService only manages an internal completion
 queue. The ExecutorCompletionService class provides an
 implementation of this approach.
 
Memory consistency effects: Actions in a thread prior to
 submitting a task to a CompletionService
 happen-before
 actions taken by that task, which in turn happen-before
 actions following a successful return from the corresponding take().
| Modifier and Type | Method and Description | 
|---|---|
| Future<V> | poll()Retrieves and removes the Future representing the next
 completed task, or  nullif none are present. | 
| Future<V> | poll(long timeout,
    TimeUnit unit)Retrieves and removes the Future representing the next
 completed task, waiting if necessary up to the specified wait
 time if none are yet present. | 
| Future<V> | submit(Callable<V> task)Submits a value-returning task for execution and returns a Future
 representing the pending results of the task. | 
| Future<V> | submit(Runnable task,
      V result)Submits a Runnable task for execution and returns a Future
 representing that task. | 
| Future<V> | take()Retrieves and removes the Future representing the next
 completed task, waiting if none are yet present. | 
Future<V> submit(Callable<V> task)
task - the task to submitRejectedExecutionException - if the task cannot be
         scheduled for executionNullPointerException - if the task is nullFuture<V> submit(Runnable task, V result)
task - the task to submitresult - the result to return upon successful completionget() method will return the given
         result value upon completionRejectedExecutionException - if the task cannot be
         scheduled for executionNullPointerException - if the task is nullFuture<V> take() throws InterruptedException
InterruptedException - if interrupted while waitingFuture<V> poll()
null if none are present.null if none are presentFuture<V> poll(long timeout, TimeUnit unit) throws InterruptedException
timeout - how long to wait before giving up, in units of
        unitunit - a TimeUnit determining how to interpret the
        timeout parameternull if the specified waiting time elapses
         before one is presentInterruptedException - if interrupted while waiting Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2017, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.