Most visited

Recently visited

Added in API level 1

Executors

public class Executors
extends Object

java.lang.Object
   ↳ java.util.concurrent.Executors


工厂和工具方法ExecutorExecutorServiceScheduledExecutorServiceThreadFactoryCallable此包中定义的类。 这个类支持以下几种方法:

Summary

Public methods

static Callable<Object> callable(Runnable task)

返回一个 Callable对象,该对象在调用时运行给定的任务并返回 null

static Callable<Object> callable(PrivilegedAction<?> action)

返回一个 Callable对象,该对象在调用时运行给定的特权操作并返回其结果。

static Callable<Object> callable(PrivilegedExceptionAction<?> action)

返回一个 Callable对象,该对象在调用时运行给定的特权异常操作并返回其结果。

static <T> Callable<T> callable(Runnable task, T result)

返回一个 Callable对象,它在调用时运行给定的任务并返回给定的结果。

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)

返回一个对象,该对象将所有已定义的 ExecutorService方法委托给给定的执行器,但不包含任何其他方法,否则这些方法可能会使用强制转换进行访问。

static ScheduledExecutorService unconfigurableScheduledExecutorService(ScheduledExecutorService executor)

返回一个对象,该对象将所有已定义的 ScheduledExecutorService方法委托给给定的执行程序,但不包含任何其他可能使用强制转换访问的方法。

Inherited methods

From class java.lang.Object

Public methods

callable

Added in API level 1
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

Added in API level 9
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

Added in API level 9
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

Added in API level 1
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

defaultThreadFactory

Added in API level 1
ThreadFactory defaultThreadFactory ()

返回用于创建新线程的默认线程工厂。 该工厂在同一个ThreadGroup创建执行程序使用的所有新线程。 每个新线程都被创建为非守护线程,其优先级设置为Thread.NORM_PRIORITY较小的Thread.NORM_PRIORITY并且线程组中允许的最大优先级为优先级。 新线程的名称可通过pool-N-thread-M的 getName()访问,其中N是该工厂的序号, M是该工厂创建的线程的序号。

Returns
ThreadFactory a thread factory

newCachedThreadPool

Added in API level 1
ExecutorService newCachedThreadPool ()

创建一个线程池,根据需要创建新线程,但会在可用时重用先前构建的线程。 这些池通常会提高执行许多短暂异步任务的程序的性能。 如果可用,调用execute将重用以前构造的线程。 如果没有现有线程可用,则会创建一个新线程并将其添加到池中。 未使用六十秒的线程将被终止并从缓存中移除。 因此,保持闲置时间足够长的池不会消耗任何资源。 请注意,可能使用ThreadPoolExecutor构造函数创建具有类似属性但具有不同细节的池(例如,超时参数)。

Returns
ExecutorService the newly created thread pool

newCachedThreadPool

Added in API level 1
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

newFixedThreadPool

Added in API level 1
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

newFixedThreadPool

Added in API level 1
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

newScheduledThreadPool

Added in API level 1
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

newScheduledThreadPool

Added in API level 1
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

newSingleThreadExecutor

Added in API level 1
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

newSingleThreadExecutor

Added in API level 1
ExecutorService newSingleThreadExecutor ()

创建一个执行器,该执行器使用单个工作线程运行无界队列。 (但是请注意,如果这个单线程在关闭之前由于执行期间的失败而终止,那么如果需要执行后续任务,则将取代它。)任务保证按顺序执行,并且不会有一个任务处于活动状态在任何给定的时间。 与其他等效的newFixedThreadPool(1)不同,返回的执行程序保证不可重新配置为使用其他线程。

Returns
ExecutorService the newly created single-threaded Executor

newSingleThreadScheduledExecutor

Added in API level 1
ScheduledExecutorService newSingleThreadScheduledExecutor ()

创建一个单线程执行程序,可以安排命令在给定延迟后运行,或定期执行。 (但是请注意,如果这个单线程在关闭之前由于执行期间的失败而终止,那么如果需要执行后续任务,则将取代它。)任务保证按顺序执行,并且不会有一个任务处于活动状态在任何给定的时间。 与其他等效的newScheduledThreadPool(1)不同,返回的执行程序保证不可重新配置为使用其他线程。

Returns
ScheduledExecutorService the newly created scheduled executor

newSingleThreadScheduledExecutor

Added in API level 1
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

newWorkStealingPool

Added in API level 24
ExecutorService newWorkStealingPool (int parallelism)

创建一个线程池,该线程池维护足够的线程以支持给定的并行性级别,并可以使用多个队列来减少争用。 并行性级别对应于活跃参与或可用于参与任务处理的线程的最大数量。 线程的实际数量可能会动态增长和减少。 工作窃取池不保证提交的任务执行的顺序。

Parameters
parallelism int: the targeted parallelism level
Returns
ExecutorService the newly created thread pool
Throws
IllegalArgumentException if parallelism <= 0

newWorkStealingPool

Added in API level 24
ExecutorService newWorkStealingPool ()

使用 available processors的数目作为其目标并行性级别创建一个工作线程池。

Returns
ExecutorService the newly created thread pool

也可以看看:

privilegedCallable

Added in API level 1
Callable<T> privilegedCallable (Callable<T> callable)

旧版安全代码; 不使用。

Parameters
callable Callable
Returns
Callable<T>

privilegedCallableUsingCurrentClassLoader

Added in API level 1
Callable<T> privilegedCallableUsingCurrentClassLoader (Callable<T> callable)

旧版安全代码; 不使用。

Parameters
callable Callable
Returns
Callable<T>

privilegedThreadFactory

Added in API level 1
ThreadFactory privilegedThreadFactory ()

旧版安全代码; 不使用。

Returns
ThreadFactory

unconfigurableExecutorService

Added in API level 1
ExecutorService unconfigurableExecutorService (ExecutorService executor)

返回一个对象,该对象将所有已定义的ExecutorService方法委托给给定的执行程序,但不包含任何其他可能使用强制转换访问的方法。 这提供了一种安全“冻结”配置的方法,并禁止调整给定的具体实现。

Parameters
executor ExecutorService: the underlying implementation
Returns
ExecutorService an ExecutorService instance
Throws
NullPointerException if executor null

unconfigurableScheduledExecutorService

Added in API level 1
ScheduledExecutorService unconfigurableScheduledExecutorService (ScheduledExecutorService executor)

返回一个对象,该对象将所有已定义的ScheduledExecutorService方法委托给给定的执行器,但不包含任何其他可能使用强制转换访问的方法。 这提供了一种安全“冻结”配置的方法,并禁止调整给定的具体实现。

Parameters
executor ScheduledExecutorService: the underlying implementation
Returns
ScheduledExecutorService a ScheduledExecutorService instance
Throws
NullPointerException if executor null

Hooray!