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
null if 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)
RejectedExecutionException - if the task cannot be
scheduled for executionNullPointerException - if the task is nulltask - the task to submitFuture<V> submit(Runnable task, V result)
RejectedExecutionException - if the task cannot be
scheduled for executionNullPointerException - if the task is nulltask - the task to submitresult - the result to return upon successful completionget() method will return the given
result value upon completionFuture<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
InterruptedException - if interrupted while waitingtimeout - 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 presentaicas GmbH, Karlsruhe, Germany —www.aicas.com
Copyright © 2001-2022 aicas GmbH. All Rights Reserved.