public interface CompletionService<V>
submit
任务的执行。消费者
take
完成任务和过程要他们完成他们的结果。一个
CompletionService
例如可以用来管理异步I/O,其中任务执行读取是在一个程序或系统的一部分提交,然后采取行动,在程序的不同部分时,读取完整,可能以不同的顺序比他们要求的。
通常,一个CompletionService
依赖于一个单独的Executor
实际执行的任务,在这种情况下,CompletionService
只管理一个内部完成队列。的ExecutorCompletionService
类提供了这种方法的实现。
内存一致性效果:在提交任务到一个CompletionService
happen-before行动之前采取行动,任务的线程,从而发生过行动后,从相应的take()
成功归来。
Modifier and Type | Method and Description |
---|---|
Future<V> |
poll()
检索并移除的代表未来完成任务以后,或
null 如果不存在。
|
Future<V> |
poll(long timeout, TimeUnit unit)
检索和删除表示下一个已完成的任务的未来,如果需要的话,在指定的等待时间,如果没有的话,等待。
|
Future<V> |
submit(Callable<V> task)
提交一个值返回任务执行,并返回一个表示任务挂起结果的未来。
|
Future<V> |
submit(Runnable task, V result)
提交执行一个Runnable任务并返回一个表示该任务的未来。
|
Future<V> |
take()
检索和删除表示下一个已完成的任务的未来,等待是否还存在。
|
Future<V> submit(Callable<V> task)
task
-任务提交
RejectedExecutionException
如果任务不能按计划执行
NullPointerException
-如果任务是空的
Future<V> submit(Runnable task, V result)
task
-任务提交
result
-结果返回在成功完成
get()
方法将返回给定的结果值完成后
RejectedExecutionException
如果任务不能按计划执行
NullPointerException
-如果任务是空的
Future<V> take() throws InterruptedException
InterruptedException
如果中断等待
Future<V> poll(long timeout, TimeUnit unit) throws InterruptedException
timeout
-多久才放弃等待,在单位
unit
unit
-
TimeUnit
确定如何解释
timeout
参数
null
未来如果指定的等待时间过去之前是
InterruptedException
如果中断等待
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.