Most visited

Recently visited

Added in API level 1

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

Added in API level 1
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
Throws
InterruptedException if interrupted while waiting

poll

Added in API level 1
Future<V> poll ()

检索并删除表示下一个完成任务的Future,或者如果没有任何任务存在,则表示 null

Returns
Future<V> the Future representing the next completed task, or null if none are present

submit

Added in API level 1
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
Throws
RejectedExecutionException if the task cannot be scheduled for execution
NullPointerException if the task is null

submit

Added in API level 1
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
Throws
RejectedExecutionException if the task cannot be scheduled for execution
NullPointerException if the task is null

take

Added in API level 1
Future<V> take ()

检索并删除表示下一个已完成任务的Future,如果尚未存在,则等待。

Returns
Future<V> the Future representing the next completed task
Throws
InterruptedException if interrupted while waiting

Hooray!