CompletionService
public interface CompletionService
java.util.concurrent.CompletionService<V> |
Known Indirect Subclasses
|
一种将新的异步任务的生成与已完成任务的结果消耗分离的服务。 生产者执行任务submit
。 消费者take
完成了任务并按其完成的顺序处理了结果。 例如,可以使用CompletionService
来管理异步I / O,其中执行读取的任务在程序或系统的一部分中提交,然后在读取完成时在程序的不同部分中执行,可能在与他们要求的顺序不同。
通常, CompletionService
依赖单独的Executor
来实际执行任务,在这种情况下, CompletionService
仅管理内部完成队列。 ExecutorCompletionService
类提供了这种方法的实现。
内存一致性效果:提交任务的前行动线程 CompletionService
happen-before由该任务所采取的行动,进而 发生,之前从以下相应的成功返回行动 take()
。
Summary
Public methods |
abstract Future<V> |
poll(long timeout, TimeUnit unit) 检索并删除表示下一个已完成任务的Future,如果需要,则等待至指定的等待时间(如果没有任何时间存在)。 |
abstract Future<V> |
poll() 检索并删除表示下一个完成任务的Future,或者如果没有任何任务存在,则表示 null 。 |
abstract Future<V> |
submit(Runnable task, V result) 提交可执行的任务并返回表示该任务的Future。 |
abstract Future<V> |
submit(Callable<V> task) 提交执行的返回值任务,并返回表示未完成任务结果的Future。 |
abstract Future<V> |
take() 检索并删除表示下一个已完成任务的Future,如果尚未存在,则等待。 |
Public methods
poll
Future<V> poll (long timeout,
TimeUnit unit)
检索并删除表示下一个已完成任务的Future,如果需要,则等待至指定的等待时间(如果没有任何时间存在)。
Parameters |
timeout |
long : how long to wait before giving up, in units of unit |
unit |
TimeUnit : a TimeUnit determining how to interpret the timeout parameter |
Returns |
Future<V> |
the Future representing the next completed task or null if the specified waiting time elapses before one is present |
poll
Future<V> poll ()
检索并删除表示下一个完成任务的Future,或者如果没有任何任务存在,则表示 null
。
Returns |
Future<V> |
the Future representing the next completed task, or null if none are present |
submit
Future<V> submit (Runnable task,
V result)
提交可执行的任务并返回表示该任务的Future。 完成后,可以采取或调查此任务。
Parameters |
task |
Runnable : the task to submit |
result |
V : the result to return upon successful completion |
Returns |
Future<V> |
a Future representing pending completion of the task, and whose get() method will return the given result value upon completion |
submit
Future<V> submit (Callable<V> task)
提交执行的返回值任务,并返回表示未完成任务结果的Future。 完成后,可以采取或调查此任务。
Parameters |
task |
Callable : the task to submit |
Returns |
Future<V> |
a Future representing pending completion of the task |
take
Future<V> take ()
检索并删除表示下一个已完成任务的Future,如果尚未存在,则等待。
Returns |
Future<V> |
the Future representing the next completed task |