介绍
- java.util.concurrent.ThreadPoolExecutor
- public class ThreadPoolExecutor extends AbstractExecutorService
API
构造器
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)
- corePoolSize :初始线程池大小
- maximumPoolSize :最大线程池大小
- keepAliveTime :设置线程存活时间,即当池中线程多于初始大小时,多出的线程保留的时长
- unit :keepAliveTime 的时间单位
- workQueue :设置队列,用于存在未执行的线程
- threadFactory :线程工厂,用于自定义线程创建
- handler :设置当线程阻塞(block)时的异常处理器,所谓线程阻塞即线程池和等待队列已满,无法处理线程时采取的策略
public
-
setCorePoolSize, getCorePoolSize
-
setMaximumPoolSize, getMaximumPoolSize
-
setKeepAliveTime, getKeepAliveTime
-
getQueue
- workQueue
-
setThreadFactory, getThreadFactory
-
setRejectedExecutionHandler, getRejectedExecutionHandler
- 匹配构造器中的参数
-
execute
void execute(Runnable command)
-
shutdown
- 启动有序关闭,其中执行先前提交的任务,但不会接受新任务
-
shutdownNow
- 尝试停止所有正在执行的任务,停止正在等待的任务的处理,并返回正在等待执行的任务的列表
- 此方法不等待主动执行的任务终止。使用
awaitTermination
来做到这一点
-
awaitTermination
- 阻塞,直到所有任务在关闭请求后完成执行
-
prestartAllCoreThreads
- 启动所有核心线程
-
prestartCoreThread
- 启动一个核心线程
- 默认情况下,即使是核心线程也仅在新任务到达时才最初创建和启动
-
allowsCoreThreadTimeOut
- 允许核心线程超时
- 默认 false ,核心线程永远不会由于缺少传入任务而终止
-
allowCoreThreadTimeOut
- 设置
allowsCoreThreadTimeOut
- 设置
-
getActiveCount
- 返回正在主动执行任务的线程的大致数量
-
getTaskCount
- 返回已计划执行的任务的大致总数
-
getCompletedTaskCount
- 返回已完成执行的任务的大致总数
-
getLargestPoolSize
- 返回池中曾经同时存在的最大线程数
-
getPoolSize
- 返回当前线程池中线程数量
-
isTerminating
- 如果此执行器在
shutdown
或shutdownNow
之后正在终止但尚未完全终止,则返回 true
- 如果此执行器在
-
purge
- 尝试从工作队列中删除所有已取消的
Future
任务
- 尝试从工作队列中删除所有已取消的
-
remove
- 从队列中移除
- ThreadPoolExecutor concurrent 20230713 java utilthreadpoolexecutor concurrent 20230713 java executorservice concurrent 20230713 java concurrent java util rejectedexecutionexception concurrent java util scheduledexecutorservice concurrent 20230713 threadpoolexecutor线程java threadpoolexecutor线程 深度java completablefuture concurrent 20230618 java threadpoolexecutor线程 源码java java线程concurrent工具