public abstract class AbstractExecutorService extends Object implements ExecutorService
ExecutorService
执行方法的默认实现。该类实现了
submit
,使用
RunnableFuture
返回
newTaskFor
invokeAny
和
invokeAll
方法,在这个包提供的
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.
}
Constructor and Description |
---|
AbstractExecutorService() |
Modifier and Type | Method and Description |
---|---|
<T> List<Future<T>> |
invokeAll(Collection<? extends Callable<T>> tasks)
执行给定的任务,返回一个未来持有他们的状态和结果的列表时,所有的完整。
|
<T> List<Future<T>> |
invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
执行给定的任务,返回一个未来持有他们的状态和结果的列表时,所有的完成或超时到期,以先发生的。
|
<T> T |
invokeAny(Collection<? extends Callable<T>> tasks)
执行给定的任务,返回已成功完成的结果(即,不抛出一个例外),如果任何。
|
<T> T |
invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
执行给定的任务,返回一个成功完成的结果(即,不抛出异常),如果做了超时之前经过。
|
protected <T> RunnableFuture<T> |
newTaskFor(Callable<T> callable)
返回给调用任务
RunnableFuture 。
|
protected <T> RunnableFuture<T> |
newTaskFor(Runnable runnable, T value)
返回一个
RunnableFuture 为给定的运行与默认值。
|
<T> Future<T> |
submit(Callable<T> task)
提交一个值返回任务执行,并返回一个表示任务挂起结果的未来。
|
Future<?> |
submit(Runnable task)
提交执行一个Runnable任务并返回一个表示该任务的未来。
|
<T> Future<T> |
submit(Runnable task, T result)
提交执行一个Runnable任务并返回一个表示该任务的未来。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
RunnableFuture
为给定的运行与默认值。
T
-给定的值的类型
runnable
的Runnable任务包
value
-返回未来的默认值
RunnableFuture
,运行时,将运行的基本运行和它作为一个
Future
,将给定的值作为结果为基本任务取消
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
RunnableFuture
。
T
-可调用的结果的类型
callable
-可赎回的任务包
RunnableFuture
,运行时,会调用底层可赎回的,作为一个
Future
,产量将可调用的结果作为其结果为基本任务取消
public Future<?> submit(Runnable task)
ExecutorService
get
方法将返回
null
在成功完成。
submit
接口
ExecutorService
task
-任务提交
RejectedExecutionException
如果任务不能按计划执行
NullPointerException
-如果任务是空的
public <T> Future<T> submit(Runnable task, T result)
ExecutorService
get
方法将给定的结果成功完成后返回。
submit
接口
ExecutorService
T
-结果的类型
task
-任务提交
result
-结果返回
RejectedExecutionException
如果任务不能按计划执行
NullPointerException
-如果任务是空的
public <T> Future<T> submit(Callable<T> task)
ExecutorService
get
方法将返回的结果在成功完成的任务。
如果你想立即阻塞等待一个任务,你可以使用表格result = exec.submit(aCallable).get();
结构
注:本Executors
类包含一组方法,可以将其他一些常见的闭合状物体,例如,PrivilegedAction
到Callable
形式可以提交。
submit
接口
ExecutorService
T
-任务类型结果
task
-任务提交
RejectedExecutionException
如果任务不能按计划执行
NullPointerException
-如果任务是空的
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException
ExecutorService
invokeAny
接口
ExecutorService
T
-返回值的类型
tasks
-任务的集合
InterruptedException
如果中断等待
ExecutionException
-如果没有任务圆满完成
public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
ExecutorService
invokeAny
接口
ExecutorService
T
-值的类型从任务返回
tasks
-任务的集合
timeout
-最大等待时间
unit
- timeout参数的时间单位
InterruptedException
如果中断等待
ExecutionException
-如果没有任务圆满完成
TimeoutException
-如果超时之前经过的任何任务圆满完成
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException
ExecutorService
Future.isDone()
是
true
为返回的列表中的每个元素。请注意,一个完成的任务可能会被终止或通过抛出一个异常。此方法的结果是不确定的,如果给定的集合被修改,而这个操作正在进行中。
invokeAll
接口
ExecutorService
T
-返回值的类型
tasks
-任务的集合
InterruptedException
如果中断而等待,在这种情况下,未完成的任务被取消
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
ExecutorService
Future.isDone()
是
true
为返回的列表中的每个元素。返回后,未完成的任务被取消。请注意,一个完成的任务可能会被终止或通过抛出一个异常。此方法的结果是不确定的,如果给定的集合被修改,而这个操作正在进行中。
invokeAll
接口
ExecutorService
T
-值的类型从任务返回
tasks
-任务的集合
timeout
-最大等待时间
unit
- timeout参数的时间单位
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.