public interface CompletionService
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 |
poll()
Retrieves and removes the Future representing the next
completed task or null if none are present.
|
Future |
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 |
submit(Callable task)
Submits a value-returning task for execution and returns a Future
representing the pending results of the task.
|
Future |
submit(java.lang.Runnable task,
java.lang.Object result)
Submits a Runnable task for execution and returns a Future
representing that task.
|
Future |
take()
Retrieves and removes the Future representing the next
completed task, waiting if none are yet present.
|
Future submit(Callable task)
task
- the task to submitRejectedExecutionException
- if the task cannot be
scheduled for executionjava.lang.NullPointerException
- if the task is nullFuture submit(java.lang.Runnable task, java.lang.Object result)
task
- the task to submitresult
- the result to return upon successful completionRejectedExecutionException
- if the task cannot be
scheduled for executionjava.lang.NullPointerException
- if the task is nullFuture take() throws java.lang.InterruptedException
java.lang.InterruptedException
- if interrupted while waitingFuture poll()
Future poll(long timeout, TimeUnit unit) throws java.lang.InterruptedException
timeout
- how long to wait before giving up, in units of
unitunit
- a TimeUnit determining how to interpret the
timeout parameterjava.lang.InterruptedException
- if interrupted while waiting