- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- 实现的所有接口
-
Executor
,ExecutorService
- 已知直接子类:
-
ForkJoinPool
,ThreadPoolExecutor
public abstract class AbstractExecutorService extends Object implements ExecutorService
提供ExecutorService
执行方法的默认实现。 此类实现submit
,invokeAny
和invokeAll
使用方法RunnableFuture
通过返回newTaskFor
,其默认为FutureTask
类此包中提供。 例如,submit(Runnable)
的实现创建了一个执行并返回的关联RunnableFuture
。 子类可以覆盖newTaskFor
方法返回RunnableFuture
其他实现比FutureTask
。扩展示例 。 下面是一个类的草图,它自定义
ThreadPoolExecutor
以使用CustomTask
类而不是默认的FutureTask
:public class CustomThreadPoolExecutor extends ThreadPoolExecutor { static class CustomTask<V> implements RunnableFuture<V> {...} protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) { return new CustomTask<V>(c); } protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) { return new CustomTask<V>(r, v); } // ... add constructors, etc. }
- 从以下版本开始:
- 1.5
-
-
构造方法摘要
构造方法 构造器 描述 AbstractExecutorService()
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 protected <T> RunnableFuture<T>
newTaskFor(Runnable runnable, T value)
对于给定的runnable和默认值,返回RunnableFuture
。protected <T> RunnableFuture<T>
newTaskFor(Callable<T> callable)
返回给定可调用任务的RunnableFuture
。Future<?>
submit(Runnable task)
提交Runnable任务以执行并返回表示该任务的Future。<T> Future<T>
submit(Runnable task, T result)
提交Runnable任务以执行并返回表示该任务的Future。<T> Future<T>
submit(Callable<T> task)
提交值返回任务以执行并返回表示任务的挂起结果的Future。-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 java.util.concurrent.ExecutorService
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow
-
-
-
-
方法详细信息
-
newTaskFor
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
对于给定的runnable和默认值,返回RunnableFuture
。- 参数类型
-
T
- 给定值的类型 - 参数
-
runnable
- 正在包装的可运行任务 -
value
- 返回的未来的默认值 - 结果
-
RunnableFuture
,运行时将运行底层的runnable,作为Future
,将产生给定值作为其结果并提供取消基础任务 - 从以下版本开始:
- 1.6
-
newTaskFor
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
返回给定可调用任务的RunnableFuture
。- 参数类型
-
T
- 可调用结果的类型 - 参数
-
callable
- 正在包装的可调用任务 - 结果
-
RunnableFuture
,在运行时,将调用底层可调用对象,并且作为Future
,将产生可调用对象的结果作为其结果,并提供取消基础任务 - 从以下版本开始:
- 1.6
-
submit
public Future<?> submit(Runnable task)
从界面复制的说明:ExecutorService
提交Runnable任务以执行并返回表示该任务的Future。 成功完成后,Future的get
方法将返回null
。- Specified by:
-
submit
,界面ExecutorService
- 参数
-
task
- 要提交的任务 - 结果
- 表示未完成任务的Future
- 异常
-
RejectedExecutionException
- 如果无法安排任务执行 -
NullPointerException
- 如果任务为空
-
submit
public <T> Future<T> submit(Runnable task, T result)
从界面复制的说明:ExecutorService
提交Runnable任务以执行并返回表示该任务的Future。 Future'sget
方法将在成功完成后返回给定结果。- Specified by:
-
submit
在界面ExecutorService
- 参数类型
-
T
- 结果的类型 - 参数
-
task
- 要提交的任务 -
result
- 要返回的结果 - 结果
- 表示未完成任务的Future
- 异常
-
RejectedExecutionException
- 如果无法安排任务执行 -
NullPointerException
- 如果任务为空
-
submit
public <T> Future<T> submit(Callable<T> task)
从界面复制的说明:ExecutorService
提交值返回任务以执行并返回表示任务的挂起结果的Future。 Future的get
方法将在成功完成后返回任务的结果。如果您想立即阻止等待任务,可以使用
result = exec.submit(aCallable).get();
表单的result = exec.submit(aCallable).get();
注意:
Executors
类包含一组方法,可以将一些其他常见的类似闭包的对象(例如,PrivilegedAction
)转换为Callable
表单,以便可以提交它们。- Specified by:
-
submit
,界面ExecutorService
- 参数类型
-
T
- 任务结果的类型 - 参数
-
task
- 要提交的任务 - 结果
- 表示未完成任务的Future
- 异常
-
RejectedExecutionException
- 如果无法安排任务执行 -
NullPointerException
- 如果任务为空
-
-