|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util.concurrent
类 AbstractExecutorService
java.lang.Object java.util.concurrent.AbstractExecutorService
- 所有已实现的接口:
- Executor, ExecutorService
- 直接已知子类:
- ThreadPoolExecutor
-
public abstract class AbstractExecutorService
- extends Object
- implements ExecutorService
提供 ExecutorService
执行方法的默认实现。此类使用包中提供的默认 FutureTask
类实现了 submit、invokeAny 和 invokeAll 方法。例如,submit(Runnable) 的实现创建了一个相关的 FutureTask 类,该类将被执行并返回。为了使用不同 Future
实现而重写这些方法的子类,对于每个方法都应该采用一致的做法。
- 从以下版本开始:
- 1.5
构造方法摘要 | |
---|---|
AbstractExecutorService() |
方法摘要 | ||
---|---|---|
|
invokeAll(Collection<Callable<T>> tasks) 执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表。 |
|
|
invokeAll(Collection<Callable<T>> tasks, long timeout, TimeUnit unit) 执行给定的任务,当所有任务完成或超时期满时(无论哪个首先发生),返回保持任务状态和结果的 Future 列表。 |
|
|
invokeAny(Collection<Callable<T>> tasks) 执行给定的任务,如果某个任务已成功完成(也就是未抛出异常),则返回其结果。 |
|
|
invokeAny(Collection<Callable<T>> tasks, long timeout, TimeUnit unit) 执行给定的任务,如果在给定的超时期满前某个任务已成功完成(也就是未抛出异常),则返回其结果。 |
|
|
submit(Callable<T> task) 提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。 |
|
Future<?> |
submit(Runnable task) 提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。 |
|
|
submit(Runnable task, T result) 提交一个 Runnable 任务用于执行,并返回一个 Future,该 Future 表示任务一旦完成后即返回给定的结果。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 java.util.concurrent.ExecutorService 继承的方法 |
---|
awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow |
从接口 java.util.concurrent.Executor 继承的方法 |
---|
execute |
构造方法详细信息 |
---|
AbstractExecutorService
public AbstractExecutorService()
方法详细信息 |
---|
submit
public Future<?> submit(Runnable task)
-
从接口
ExecutorService
复制的描述 - 提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。
-
- 指定者:
-
接口
ExecutorService
中的submit
-
- 参数:
-
task
- 要提交的任务。 - 返回:
- 表示任务等待完成的 Future,并且其 get() 方法在完成后将返回 null。
submit
public <T> Future<T> submit(Runnable task, T result)
-
从接口
ExecutorService
复制的描述 - 提交一个 Runnable 任务用于执行,并返回一个 Future,该 Future 表示任务一旦完成后即返回给定的结果。
-
- 指定者:
-
接口
ExecutorService
中的submit
-
- 参数:
-
task
- 要提交的任务 -
result
- 返回的结果 - 返回:
- 表示任务等待完成的 Future,并且其 get() 方法在完成后将返回给定的结果。
submit
public <T> Future<T> submit(Callable<T> task)
-
从接口
ExecutorService
复制的描述 -
提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。
如果想立即阻塞任务的等待,则可以使用 result = exec.submit(aCallable).get(); 形式的构造。
注:
Executors
类包括了一组方法,可以转换某些其他常见的类似于闭包的对象,例如,将PrivilegedAction
转换为Callable
形式,这样就可以提交它们了。 -
- 指定者:
-
接口
ExecutorService
中的submit
-
- 参数:
-
task
- 要提交的任务 - 返回:
- 表示任务等待完成的 Future
invokeAny
public <T> T invokeAny(Collection<Callable<T>> tasks) throws InterruptedException, ExecutionException
-
从接口
ExecutorService
复制的描述 - 执行给定的任务,如果某个任务已成功完成(也就是未抛出异常),则返回其结果。一旦正常或异常返回后,则取消尚未完成的任务。如果此操作正在进行时修改了给定的集合,则此方法的结果是不明确的。
-
- 指定者:
-
接口
ExecutorService
中的invokeAny
-
- 参数:
-
tasks
- 任务集合 - 返回:
- 某个任务返回的结果
- 抛出:
-
InterruptedException
- 如果等待时发生中断 -
ExecutionException
- 如果没有任务成功完成
invokeAny
public <T> T invokeAny(Collection<Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
-
从接口
ExecutorService
复制的描述 - 执行给定的任务,如果在给定的超时期满前某个任务已成功完成(也就是未抛出异常),则返回其结果。一旦正常或异常返回后,则取消尚未完成的任务。如果此操作正在进行时修改了给定的集合,则此方法的结果是不明确的。
-
- 指定者:
-
接口
ExecutorService
中的invokeAny
-
- 参数:
-
tasks
- 任务集合 -
timeout
- 最长等待时间 -
unit
- timeout 参数的时间单位 - 返回:
- 某个任务返回的结果
- 抛出:
-
InterruptedException
- 如果等待时发生中断 -
ExecutionException
- 如果没有任务成功完成 -
TimeoutException
- 如果在所有任务成功完成之前给定的超时期满
invokeAll
public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks) throws InterruptedException
-
从接口
ExecutorService
复制的描述 -
执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表。返回列表的所有元素的
Future.isDone()
为 true。注意,可以正常地或通过抛出异常来终止已完成 任务。如果正在进行此操作时修改了给定的集合,则此方法的结果是不明确的。 -
- 指定者:
-
接口
ExecutorService
中的invokeAll
-
- 参数:
-
tasks
- 任务集合 - 返回:
- 表示任务的 Future 列表,列表顺序与给定任务列表的迭代器所生成的顺序相同,每个任务都已完成。
- 抛出:
-
InterruptedException
- 如果等待时发生中断,在这种情况下取消尚未完成的任务。
invokeAll
public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
-
从接口
ExecutorService
复制的描述 -
执行给定的任务,当所有任务完成或超时期满时(无论哪个首先发生),返回保持任务状态和结果的 Future 列表。返回列表的所有元素的
Future.isDone()
为 true。一旦返回后,即取消尚未完成的任务。注意,可以正常地或通过抛出异常来终止已完成 任务。如果此操作正在进行时修改了给定的集合,则此方法的结果是不明确的。 -
- 指定者:
-
接口
ExecutorService
中的invokeAll
-
- 参数:
-
tasks
- 任务集合 -
timeout
- 最长等待时间 -
unit
- timeout 参数的时间单位 - 返回:
- 表示任务的 Future 列表,列表顺序与给定任务列表的迭代器所生成的顺序相同。如果操作未超时,则已完成所有任务。如果确实超时了,则某些任务尚未完成。
- 抛出:
-
InterruptedException
- 如果等待时发生中断,在这种情况下取消尚未完成的任务