edu.emory.mathcs.backport.java.util.concurrent
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 {@code CompletionService} happen-before actions taken by that task, which in turn happen-before actions following a successful return from the corresponding {@code take()}.
Method Summary | |
---|---|
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(Runnable task, 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.
|
Returns: the Future representing the next completed task, or null if none are present
Parameters: timeout how long to wait before giving up, in units of unit unit a TimeUnit determining how to interpret the timeout parameter
Returns: the Future representing the next completed task or null if the specified waiting time elapses before one is present
Throws: InterruptedException if interrupted while waiting
Parameters: task the task to submit
Returns: a Future representing pending completion of the task
Throws: RejectedExecutionException if the task cannot be scheduled for execution NullPointerException if the task is null
Parameters: task the task to submit result the result to return upon successful completion
Returns: a Future representing pending completion of the task, and whose get() method will return the given result value upon completion
Throws: RejectedExecutionException if the task cannot be scheduled for execution NullPointerException if the task is null
Returns: the Future representing the next completed task
Throws: InterruptedException if interrupted while waiting