public class ExecutorBuilder extends Object implements Buildable<ThreadPoolExecutor>
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_QUEUE_CAPACITY
默认的工作队列容量
|
Constructor and Description |
---|
ExecutorBuilder() |
Modifier and Type | Method and Description |
---|---|
ExecutorBuilder |
allowCoreThreadTimeout()
设置线程执行超时后回收线程
|
ExecutorBuilder |
allowCoreThreadTimeout(boolean allowCoreThreadTimeout)
设置线程执行超时后是否回收线程
|
ThreadPoolExecutor |
build()
构建 ThreadPoolExecutor
|
ExecutorBuilder |
corePoolSize(int corePoolSize)
设置核心池大小 默认0
|
static ExecutorBuilder |
create()
创建 ExecutorBuilder
|
ExecutorBuilder |
keepAliveTime(long keepAliveTime)
设置线程存活时间 (ms)
当池中线程多于核心大小时 多出的线程保留的时长
|
ExecutorBuilder |
keepAliveTime(long keepAliveTime,
TimeUnit unit)
设置线程存活时间
即当池中线程多于核心大小时 多出的线程保留的时长
|
ExecutorBuilder |
maxPoolSize(int maxPoolSize)
设置最大池大小 (允许同时执行的最大线程数)
|
ExecutorBuilder |
namedThreadFactory(String threadPrefix)
设置线程工厂
|
ExecutorBuilder |
preStartAllCoreThreads()
预开启所有的核心线程
|
ExecutorBuilder |
preStartAllCoreThreads(boolean preStartAllCoreThreads)
设置是否预开启所有的核心线程
|
ExecutorBuilder |
rejectHandler(RejectedExecutionHandler rejectHandler)
设置当线程阻塞 (block) 异常处理器
- 线程池和工作队列已满
|
ExecutorBuilder |
threadFactory(ThreadFactory threadFactory)
设置线程工厂
|
ExecutorBuilder |
useArrayBlockingQueue(int capacity)
使用 ArrayBlockingQueue 做为工作队列
|
ExecutorBuilder |
useLinkedBlockingQueue()
使用 LinkedBlockingQueue 做为工作队列
|
ExecutorBuilder |
useLinkedBlockingQueue(int capacity)
使用 LinkedBlockingQueue 做为工作队列
|
ExecutorBuilder |
useSynchronousQueue()
使用 SynchronousQueue 做为工作队列 (非公平策略)
|
ExecutorBuilder |
useSynchronousQueue(boolean fair)
使用 SynchronousQueue 做为工作队列
|
ExecutorBuilder |
workQueue(BlockingQueue<Runnable> workQueue)
设置工作队列
SynchronousQueue 它将任务直接提交给线程而不保持它们, 当运行线程小于 maxPoolSize 时会创建新线程, 否则触发异常策略
LinkedBlockingQueue 默认无界队列, 当运行线程大于 corePoolSize 时始终放入此队列, 此时 maximumPoolSize 无效
当构造LinkedBlockingQueue对象时传入参数, 变为有界队列, 队列满时, 运行线程小于 maxPoolSize 时会创建新线程, 否则触发异常策略
ArrayBlockingQueue 有界队列, 相对无界队列有利于控制队列大小, 队列满时, 运行线程小于maxPoolSize时会创建新线程, 否则触发异常策略
|
public static final int DEFAULT_QUEUE_CAPACITY
public static ExecutorBuilder create()
public ExecutorBuilder corePoolSize(int corePoolSize)
corePoolSize
- 核心池大小public ExecutorBuilder maxPoolSize(int maxPoolSize)
maxPoolSize
- 最大池大小 (允许同时执行的最大线程数)public ExecutorBuilder keepAliveTime(long keepAliveTime, TimeUnit unit)
即当池中线程多于核心大小时 多出的线程保留的时长
keepAliveTime
- 线程存活时间unit
- 单位public ExecutorBuilder keepAliveTime(long keepAliveTime)
当池中线程多于核心大小时 多出的线程保留的时长
keepAliveTime
- 线程存活时间public ExecutorBuilder workQueue(BlockingQueue<Runnable> workQueue)
SynchronousQueue 它将任务直接提交给线程而不保持它们, 当运行线程小于 maxPoolSize 时会创建新线程, 否则触发异常策略
LinkedBlockingQueue 默认无界队列, 当运行线程大于 corePoolSize 时始终放入此队列, 此时 maximumPoolSize 无效 当构造LinkedBlockingQueue对象时传入参数, 变为有界队列, 队列满时, 运行线程小于 maxPoolSize 时会创建新线程, 否则触发异常策略
ArrayBlockingQueue 有界队列, 相对无界队列有利于控制队列大小, 队列满时, 运行线程小于maxPoolSize时会创建新线程, 否则触发异常策略
workQueue
- 队列public ExecutorBuilder useLinkedBlockingQueue()
public ExecutorBuilder useLinkedBlockingQueue(int capacity)
capacity
- 队列容量public ExecutorBuilder useArrayBlockingQueue(int capacity)
capacity
- 队列容量public ExecutorBuilder useSynchronousQueue()
public ExecutorBuilder useSynchronousQueue(boolean fair)
fair
- 是否使用公平访问策略public ExecutorBuilder threadFactory(ThreadFactory threadFactory)
threadFactory
- ThreadFactorypublic ExecutorBuilder namedThreadFactory(String threadPrefix)
threadPrefix
- 线程名称前缀public ExecutorBuilder rejectHandler(RejectedExecutionHandler rejectHandler)
rejectHandler
- RejectedExecutionHandlerpublic ExecutorBuilder allowCoreThreadTimeout()
public ExecutorBuilder allowCoreThreadTimeout(boolean allowCoreThreadTimeout)
allowCoreThreadTimeout
- 线程执行超时后是否回收线程public ExecutorBuilder preStartAllCoreThreads()
public ExecutorBuilder preStartAllCoreThreads(boolean preStartAllCoreThreads)
preStartAllCoreThreads
- 是否预开启所有的核心线程public ThreadPoolExecutor build()
build
in interface Buildable<ThreadPoolExecutor>
Copyright © 2024. All rights reserved.