public class Executors
extends Object
java.lang.Object | |
↳ | java.util.concurrent.Executors |
工厂和工具方法Executor
, ExecutorService
, ScheduledExecutorService
, ThreadFactory
和Callable
此包中定义的类。 这个类支持以下几种方法:
ExecutorService
set up with commonly useful configuration settings. ScheduledExecutorService
set up with commonly useful configuration settings. ThreadFactory
that sets newly created threads to a known state. Callable
out of other closure-like forms, so they can be used in execution methods requiring Callable
. Public methods |
|
---|---|
static Callable<Object> |
callable(Runnable task) 返回一个 |
static Callable<Object> |
callable(PrivilegedAction<?> action) 返回一个 |
static Callable<Object> |
callable(PrivilegedExceptionAction<?> action) 返回一个 |
static <T> Callable<T> |
callable(Runnable task, T result) 返回一个 |
static ThreadFactory |
defaultThreadFactory() 返回用于创建新线程的默认线程工厂。 |
static ExecutorService |
newCachedThreadPool() 创建一个线程池,根据需要创建新线程,但会在可用时重用先前构建的线程。 |
static ExecutorService |
newCachedThreadPool(ThreadFactory threadFactory) 创建一个线程池,根据需要创建新线程,但会在先前构建的线程可用时重用它,并在需要时使用提供的ThreadFactory创建新线程。 |
static ExecutorService |
newFixedThreadPool(int nThreads, ThreadFactory threadFactory) 创建一个线程池,该线程池重用固定数量的线程,使用提供的ThreadFactory在需要时创建新线程。 |
static ExecutorService |
newFixedThreadPool(int nThreads) 创建一个线程池,该线程池重用使用共享无界队列运行的固定数量的线程。 |
static ScheduledExecutorService |
newScheduledThreadPool(int corePoolSize) 创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。 |
static ScheduledExecutorService |
newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory) 创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。 |
static ExecutorService |
newSingleThreadExecutor(ThreadFactory threadFactory) 创建一个执行器,该执行器使用单个工作线程运行无界队列,并使用提供的ThreadFactory在需要时创建新线程。 |
static ExecutorService |
newSingleThreadExecutor() 创建一个执行器,该执行器使用单个工作线程运行无界队列。 |
static ScheduledExecutorService |
newSingleThreadScheduledExecutor() 创建一个单线程执行程序,可以安排命令在给定延迟后运行,或定期执行。 |
static ScheduledExecutorService |
newSingleThreadScheduledExecutor(ThreadFactory threadFactory) 创建一个单线程执行程序,可以安排命令在给定延迟后运行,或定期执行。 |
static ExecutorService |
newWorkStealingPool(int parallelism) 创建一个线程池,该线程池维护足够的线程以支持给定的并行性级别,并可以使用多个队列来减少争用。 |
static ExecutorService |
newWorkStealingPool() 使用数量 available processors作为其目标并行性级别创建一个工作线程池。 |
static <T> Callable<T> |
privilegedCallable(Callable<T> callable) 旧版安全代码; 不使用。 |
static <T> Callable<T> |
privilegedCallableUsingCurrentClassLoader(Callable<T> callable) 旧版安全代码; 不使用。 |
static ThreadFactory |
privilegedThreadFactory() 旧版安全代码; 不使用。 |
static ExecutorService |
unconfigurableExecutorService(ExecutorService executor) 返回一个对象,该对象将所有已定义的 |
static ScheduledExecutorService |
unconfigurableScheduledExecutorService(ScheduledExecutorService executor) 返回一个对象,该对象将所有已定义的 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Callable<Object> callable (Runnable task)
返回一个 Callable
对象,该对象在被调用时运行给定任务并返回 null
。
Parameters | |
---|---|
task |
Runnable : the task to run |
Returns | |
---|---|
Callable<Object> |
a callable object |
Throws | |
---|---|
NullPointerException |
if task null |
Callable<Object> callable (PrivilegedAction<?> action)
返回一个 Callable
对象,该对象在调用时运行给定的特权操作并返回其结果。
Parameters | |
---|---|
action |
PrivilegedAction : the privileged action to run |
Returns | |
---|---|
Callable<Object> |
a callable object |
Throws | |
---|---|
NullPointerException |
if action null |
Callable<Object> callable (PrivilegedExceptionAction<?> action)
返回一个 Callable
对象,该对象在被调用时运行给定的特权异常操作并返回其结果。
Parameters | |
---|---|
action |
PrivilegedExceptionAction : the privileged exception action to run |
Returns | |
---|---|
Callable<Object> |
a callable object |
Throws | |
---|---|
NullPointerException |
if action null |
Callable<T> callable (Runnable task, T result)
返回一个Callable
对象,该对象在调用时运行给定任务并返回给定结果。 当应用方法需要Callable
执行其他毫无结果的操作时,这会很有用。
Parameters | |
---|---|
task |
Runnable : the task to run |
result |
T : the result to return |
Returns | |
---|---|
Callable<T> |
a callable object |
Throws | |
---|---|
NullPointerException |
if task null |
ThreadFactory defaultThreadFactory ()
返回用于创建新线程的默认线程工厂。 该工厂在同一个ThreadGroup
创建执行程序使用的所有新线程。 每个新线程都被创建为非守护线程,其优先级设置为Thread.NORM_PRIORITY
较小的Thread.NORM_PRIORITY
并且线程组中允许的最大优先级为优先级。 新线程的名称可通过pool-N-thread-M的 getName()
访问,其中N是该工厂的序号, M是该工厂创建的线程的序号。
Returns | |
---|---|
ThreadFactory |
a thread factory |
ExecutorService newCachedThreadPool ()
创建一个线程池,根据需要创建新线程,但会在可用时重用先前构建的线程。 这些池通常会提高执行许多短暂异步任务的程序的性能。 如果可用,调用execute
将重用以前构造的线程。 如果没有现有线程可用,则会创建一个新线程并将其添加到池中。 未使用六十秒的线程将被终止并从缓存中移除。 因此,保持闲置时间足够长的池不会消耗任何资源。 请注意,可能使用ThreadPoolExecutor
构造函数创建具有类似属性但具有不同细节的池(例如,超时参数)。
Returns | |
---|---|
ExecutorService |
the newly created thread pool |
ExecutorService newCachedThreadPool (ThreadFactory threadFactory)
创建一个线程池,根据需要创建新线程,但会在先前构建的线程可用时重用它,并在需要时使用提供的ThreadFactory创建新线程。
Parameters | |
---|---|
threadFactory |
ThreadFactory : the factory to use when creating new threads |
Returns | |
---|---|
ExecutorService |
the newly created thread pool |
Throws | |
---|---|
NullPointerException |
if threadFactory is null |
ExecutorService newFixedThreadPool (int nThreads, ThreadFactory threadFactory)
创建一个线程池,该线程池重用固定数量的线程,使用提供的ThreadFactory在需要时创建新线程。 在任何时候,最多nThreads
线程都将被激活处理任务。 如果在所有线程处于活动状态时提交其他任务,则它们将在队列中等待,直到线程可用。 如果任何线程在关闭之前的执行期间由于失败而终止,则如果需要执行后续任务,则将取代它。 池中的线程将一直存在,直至明确为shutdown
。
Parameters | |
---|---|
nThreads |
int : the number of threads in the pool |
threadFactory |
ThreadFactory : the factory to use when creating new threads |
Returns | |
---|---|
ExecutorService |
the newly created thread pool |
Throws | |
---|---|
NullPointerException |
if threadFactory is null |
IllegalArgumentException |
if nThreads <= 0 |
ExecutorService newFixedThreadPool (int nThreads)
创建一个线程池,该线程池重用使用共享无界队列运行的固定数量的线程。 在任何时候,最多nThreads
线程都将处于活动状态。 如果在所有线程处于活动状态时提交其他任务,则它们将在队列中等待,直到线程可用。 如果任何线程在关闭之前的执行期间由于失败而终止,则如果需要执行后续任务,则将取代它。 池中的线程将一直存在,直至明确为shutdown
。
Parameters | |
---|---|
nThreads |
int : the number of threads in the pool |
Returns | |
---|---|
ExecutorService |
the newly created thread pool |
Throws | |
---|---|
IllegalArgumentException |
if nThreads <= 0 |
ScheduledExecutorService newScheduledThreadPool (int corePoolSize)
创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。
Parameters | |
---|---|
corePoolSize |
int : the number of threads to keep in the pool, even if they are idle |
Returns | |
---|---|
ScheduledExecutorService |
a newly created scheduled thread pool |
Throws | |
---|---|
IllegalArgumentException |
if corePoolSize < 0 |
ScheduledExecutorService newScheduledThreadPool (int corePoolSize, ThreadFactory threadFactory)
创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。
Parameters | |
---|---|
corePoolSize |
int : the number of threads to keep in the pool, even if they are idle |
threadFactory |
ThreadFactory : the factory to use when the executor creates a new thread |
Returns | |
---|---|
ScheduledExecutorService |
a newly created scheduled thread pool |
Throws | |
---|---|
IllegalArgumentException |
if corePoolSize < 0 |
NullPointerException |
if threadFactory is null |
ExecutorService newSingleThreadExecutor (ThreadFactory threadFactory)
创建一个执行器,该执行器使用单个工作线程运行无界队列,并使用提供的ThreadFactory在需要时创建新线程。 与其他等效的newFixedThreadPool(1, threadFactory)
不同,返回的执行程序保证不可重新配置为使用其他线程。
Parameters | |
---|---|
threadFactory |
ThreadFactory : the factory to use when creating new threads |
Returns | |
---|---|
ExecutorService |
the newly created single-threaded Executor |
Throws | |
---|---|
NullPointerException |
if threadFactory is null |
ExecutorService newSingleThreadExecutor ()
创建一个执行器,该执行器使用单个工作线程运行无界队列。 (但是请注意,如果这个单线程在关闭之前由于执行期间的失败而终止,那么如果需要执行后续任务,则将取代它。)任务保证按顺序执行,并且不会有一个任务处于活动状态在任何给定的时间。 与其他等效的newFixedThreadPool(1)
不同,返回的执行程序保证不可重新配置为使用其他线程。
Returns | |
---|---|
ExecutorService |
the newly created single-threaded Executor |
ScheduledExecutorService newSingleThreadScheduledExecutor ()
创建一个单线程执行程序,可以安排命令在给定延迟后运行,或定期执行。 (但是请注意,如果这个单线程在关闭之前由于执行期间的失败而终止,那么如果需要执行后续任务,则将取代它。)任务保证按顺序执行,并且不会有一个任务处于活动状态在任何给定的时间。 与其他等效的newScheduledThreadPool(1)
不同,返回的执行程序保证不可重新配置为使用其他线程。
Returns | |
---|---|
ScheduledExecutorService |
the newly created scheduled executor |
ScheduledExecutorService newSingleThreadScheduledExecutor (ThreadFactory threadFactory)
创建一个单线程执行程序,可以安排命令在给定延迟后运行,或定期执行。 (但是请注意,如果这个单线程在关闭之前由于执行期间的失败而终止,那么如果需要执行后续任务,则将取代它。)任务保证按顺序执行,并且不会有一个任务处于活动状态在任何给定的时间。 与其他等效的newScheduledThreadPool(1, threadFactory)
不同,返回的执行程序保证不可重新配置为使用其他线程。
Parameters | |
---|---|
threadFactory |
ThreadFactory : the factory to use when creating new threads |
Returns | |
---|---|
ScheduledExecutorService |
a newly created scheduled executor |
Throws | |
---|---|
NullPointerException |
if threadFactory is null |
ExecutorService newWorkStealingPool (int parallelism)
创建一个线程池,该线程池维护足够的线程以支持给定的并行性级别,并可以使用多个队列来减少争用。 并行性级别对应于活跃参与或可用于参与任务处理的线程的最大数量。 线程的实际数量可能会动态增长和减少。 工作窃取池不保证提交的任务执行的顺序。
Parameters | |
---|---|
parallelism |
int : the targeted parallelism level |
Returns | |
---|---|
ExecutorService |
the newly created thread pool |
Throws | |
---|---|
IllegalArgumentException |
if parallelism <= 0 |
ExecutorService newWorkStealingPool ()
使用 available processors的数目作为其目标并行性级别创建一个工作线程池。
Returns | |
---|---|
ExecutorService |
the newly created thread pool |
也可以看看:
Callable<T> privilegedCallable (Callable<T> callable)
旧版安全代码; 不使用。
Parameters | |
---|---|
callable |
Callable
|
Returns | |
---|---|
Callable<T> |
Callable<T> privilegedCallableUsingCurrentClassLoader (Callable<T> callable)
旧版安全代码; 不使用。
Parameters | |
---|---|
callable |
Callable
|
Returns | |
---|---|
Callable<T> |
ThreadFactory privilegedThreadFactory ()
旧版安全代码; 不使用。
Returns | |
---|---|
ThreadFactory |
ExecutorService unconfigurableExecutorService (ExecutorService executor)
返回一个对象,该对象将所有已定义的ExecutorService
方法委托给给定的执行程序,但不包含任何其他可能使用强制转换访问的方法。 这提供了一种安全“冻结”配置的方法,并禁止调整给定的具体实现。
Parameters | |
---|---|
executor |
ExecutorService : the underlying implementation |
Returns | |
---|---|
ExecutorService |
an ExecutorService instance |
Throws | |
---|---|
NullPointerException |
if executor null |
ScheduledExecutorService unconfigurableScheduledExecutorService (ScheduledExecutorService executor)
返回一个对象,该对象将所有已定义的ScheduledExecutorService
方法委托给给定的执行器,但不包含任何其他可能使用强制转换访问的方法。 这提供了一种安全“冻结”配置的方法,并禁止调整给定的具体实现。
Parameters | |
---|---|
executor |
ScheduledExecutorService : the underlying implementation |
Returns | |
---|---|
ScheduledExecutorService |
a ScheduledExecutorService instance |
Throws | |
---|---|
NullPointerException |
if executor null |