为了账号安全,请及时绑定邮箱和手机立即绑定

线程池常用的参数是哪些

线程池常用的参数是哪些

fenkapian 2018-02-04 21:38:41
最近面试老被问到
查看完整描述

1 回答

已采纳
?
sunbohan00

TA贡献44条经验 获得超73个赞

首先是corePoolSize,在创建了线程池后,在他的默认情况下,线程池中其实是没有任何线程的,而是等待有任务到来才创建线程去执行任务,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中。核心线程在allowCoreThreadTimeout被设置为true时会超时退出,默认情况下不会退出。

maxPoolSize

当线程数大于或等于核心线程,且任务队列已满时,线程池会创建新的线程,直到线程数量达到maxPoolSize。如果线程数已等于maxPoolSize,且任务队列已满,则已超出线程池的处理能力,线程池会拒绝处理任务而抛出异常。

keepAliveTime

当线程空闲时间达到keepAliveTime,该线程会退出,直到线程数量等于corePoolSize。如果allowCoreThreadTimeout设置为true,则所有线程均会退出直到线程数量为0。

allowCoreThreadTimeout

是否允许核心线程空闲退出,默认值为false。

queueCapacity

任务队列容量。从maxPoolSize的描述上可以看出,任务队列的容量会影响到线程的变化,因此任务队列的长度也需要恰当的设置。

希望采纳

查看完整回答
反对 回复 2018-02-05
  • 1 回答
  • 0 关注
  • 1306 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信