-
- 所有已知实现类:
-
ExecutorCompletionService
public interface CompletionService<V>
一种服务,它将新异步任务的生成与已完成任务的结果的消耗分离。 生产者submit
执行任务。 消费者take
按照他们完成的顺序完成了任务并处理了他们的结果。 例如,CompletionService
可用于管理异步I / O,其中执行读取的任务在程序或系统的一个部分中提交,然后在读取完成时在程序的不同部分中执行,可能在不同于他们要求的顺序。通常,
CompletionService
依赖于单独的Executor
来实际执行任务,在这种情况下,CompletionService
仅管理内部完成队列。ExecutorCompletionService
类提供了此方法的实现。内存一致性效果:提交任务的前行动线程
CompletionService
happen-before由该任务所采取的行动,进而发生,之前从以下相应的成功返回行动take()
。- 从以下版本开始:
- 1.5
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Future<V>
poll()
检索并删除表示下一个已完成任务的Future,如果不存在,则null
。Future<V>
poll(long timeout, TimeUnit unit)
检索并删除表示下一个已完成任务的Future,必要时等待指定的等待时间(如果尚未存在)。Future<V>
submit(Runnable task, V result)
提交Runnable任务以执行并返回表示该任务的Future。Future<V>
submit(Callable<V> task)
提交值返回任务以执行并返回表示任务的挂起结果的Future。Future<V>
take()
检索并删除表示下一个已完成任务的Future,如果还没有,则等待。
-
-
-
方法详细信息
-
submit
Future<V> submit(Callable<V> task)
提交值返回任务以执行并返回表示任务的挂起结果的Future。 完成后,可以采取或轮询此任务。- 参数
-
task
- 要提交的任务 - 结果
- 表示未完成任务的Future
- 异常
-
RejectedExecutionException
- 如果无法安排任务执行 -
NullPointerException
- 如果任务为空
-
submit
Future<V> submit(Runnable task, V result)
提交Runnable任务以执行并返回表示该任务的Future。 完成后,可以采取或轮询此任务。- 参数
-
task
- 要提交的任务 -
result
- 成功完成后返回的结果 - 结果
- 表示未完成任务的Future,其
get()
方法将在完成时返回给定的结果值 - 异常
-
RejectedExecutionException
- 如果无法安排任务执行 -
NullPointerException
- 如果任务为空
-
take
Future<V> take() throws InterruptedException
检索并删除表示下一个已完成任务的Future,如果还没有,则等待。- 结果
- 代表下一个完成任务的Future
- 异常
-
InterruptedException
- 等待时中断
-
poll
Future<V> poll(long timeout, TimeUnit unit) throws InterruptedException
检索并删除表示下一个已完成任务的Future,必要时等待指定的等待时间(如果尚未存在)。- 参数
-
timeout
- 放弃前等待多长时间,单位为unit
-
unit
-一个TimeUnit
确定如何解释timeout
参数 - 结果
- 表示下一个已完成任务的Future或
null
如果指定的等待时间在一个任务出现之前已经过去 - 异常
-
InterruptedException
- 等待时中断
-
-