ThreadPoolExecutor 初始化各参数的含义

序号参数含义备注
1corePoolSize 核心线程数量,线程池初始化时设定corePoolSize 大小和 maximumPoolSize 大小一致的话 线程池中的线程将不会空闲、 keepAliveTime 和 timeUnit 就不会再起作用
2maximumPoolSize线程池最大线程数(非核心线程) 核心线程 和 非核心线程 共同使用线程池、但是核心线程是不会被回收的、回收条件是线程池中的线程数量大于核心线程数
3keepAliveTime 如果当前线程池中线程数大于corePoolSize。多余的线程、在等待keepAliveTime时间后如果还没有新的线程任务指派给它、它就会被回收
4unit 等待时间keepAliveTime的单位
5workQueue 等待队列,默认SynchronousQueue一个没有存储空间的阻塞队列 ,将任务同步交付给工作线程;
可以使用无界队LinkedBlockingQueue;
有界队列ArrayBlockingQueue;
以及优先级队列PriorityBlockingQueue
6RejectedExecutionHandler饱和策略AbortPolicy(默认):直接抛弃
CallerRunsPolicy:用调用者的线程执行任务
DiscardOldestPolicy:抛弃队列中最久的任务
DiscardPolicy:抛弃当前任务
ThreadPoolExecutor的各参数含义如下: 1. corePoolSize: 核心线程池大小,即线程池中保持存活的线程数量。当线程池中的任务数量超过corePoolSize时,若有空闲线程则任务会直接交给空闲线程执行,若无空闲线程则创建新的线程。 2. maximumPoolSize: 最大线程池大小,即线程池中允许存在的最大线程数量。当线程池中的线程数量达到maximumPoolSize时,新的任务会根据拒绝策略进行处理。 3. keepAliveTime: 线程的空闲时间,即当线程池中的线程数量超过corePoolSize时,多余的空闲线程的存活时间。超过该时间的空闲线程将被终止。 4. unit: keepAliveTime的时间单位,例如TimeUnit.SECONDS表示keepAliveTime以秒为单位。 5. workQueue: 用于存放等待执行的任务的阻塞队列。 6. threadFactory: 创建线程的工厂,用于创建新的线程。 7. handler: 拒绝策略,用于当线程池无法执行新的任务时,决定如何处理任务。 以上是ThreadPoolExecutor的构造函数中的参数含义。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ThreadPoolExecutor参数含义及源码解析](https://blog.csdn.net/xiaokanfuchen86/article/details/117536228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值