当前位置:   article > 正文

Java线程池的七个参数_java线程池的最大线程数是多少

java线程池的最大线程数是多少

线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler
在这里插入图片描述
在这里插入图片描述

一、corePoolSize

核心线程数,是指线程池中长期存活的线程数。int 类型。可以理解为长期存在的、“常驻的”线程。就好比是地主家的长工一样,无论这一年的活多还是活少,都不会被辞退。

二、maximumPoolSize 线程池最大线程数量

最大线程数,是指线程池允许创建的最大线程数量。最大线程数的数量包含核心线程数。int 类型。比如,地主家的活太多了,光要长工可能干不完,需要一些临时工来帮忙,长工的数量 + 临时工的数量 = 最大线程数。
需要注意的是,在创建线程池的时候,最大线程数 maximumPoolSize 不能小于核心线程数 corePoolSize,否则会在程序运行时报异常:
核心线程数为 2,最大线程数为 1,报 java.lang.IllegalArgumentException 异常,但是最大线程数可以等于核心线程数

三、keepAliveTime 空闲线程存活时间

空闲线程存活时间,指当线程池中没有任务是,会销毁一些线程,
销毁的线程数 = maximumPoolSize - corePoolSize。long 类型。

四、unit 空闲线程存活时间单位
时间单位,指空闲线程存活时间单位,与 keepAliveTime 配合使用。单位为 TimeUnit,常用取值有以下 7 个:
在这里插入图片描述

五、workQueue 工作队列
阻塞队列,指线程池存放任务的队列,用来存储线程池的所有待执行的任务。BlockingQueue 类型。取值有以下几种:
在这里插入图片描述
比较常用的是 LinkedBlockingQueue。线程池的排队策略和该参数息息相关。

六、threadFactory 线程工厂
线程工厂。线程池创建线城市调用的工厂方法,通过此方法可以设置线程的优先级、线程的命名规则以及线程的类型(用户线程还是守护线程)等。ThreadFactory 类型。

七、handler 拒绝策略
拒绝策略。当线程池的任务超出线程池队列可以存储的最大值之后,拒绝任务的策略。RejectedExecutionHandler 类型。取值有:
在这里插入图片描述
线程池的默认拒绝策略是 AbortPolicy–拒绝并抛出异常。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/822756
推荐阅读
相关标签
  

闽ICP备14008679号