Please enable JavaScript.
Coggle requires JavaScript to display documents.
线程池参数 (corePoolSize:核心线程数 (线程池维护的核心线程数,如果没设置allowCoreThreadTimeout(默认false…
线程池参数
corePoolSize:核心线程数
线程池维护的核心线程数,如果没设置allowCoreThreadTimeout(默认false),则核心线程会一直存活
当线程池里的线程小于corePoolSize,提交一个任务时,会新建线程,即使线程池里有空闲的线程
如果设置allowCoreThreadTimeout=true,则核心线程会在空闲时间超过keepAliveTime后关闭
queueCapacity:任务队列容量(阻塞)
当线程达到核心线程,任务会优先放在任务队列中
当任务队列已满时,线程池会创建新线程来处理任务
keepAliveTime:线程空闲时间
大于corePoolSize的线程空闲时间超过keepAliveTime,则这些线程会关闭,直到线程数=corePoolSize
如果设置allowCoreThreadTimeout=true,则核心线程会在空闲时间超过keepAliveTime后关闭
rejectedExecutionHandler:任务拒绝处理器
两种情况会拒绝任务
线程达到maxPoolSize,且任务队列已满
线程池shutdown
处理策略
AbortPolicy:默认策略,丢弃任务,抛运行时异常
CallerRunsPolicy:使用调用者线程处理任务
DiscardPolicy:忽视,什么都不会发生
DiscardOldestPolicy:移除最老的线程
maxPoolSize:最大线程数
当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常
allowCoreThreadTimeout:允许核心线程超时