线程池参数的意义

参考连接:html

https://www.cnblogs.com/jiangxiulian/p/7443983.htmlspa

1. corePoolSize: 核心线程数

缺省值为1线程

  • 核心线程会一直存活,即便没有任务须要执行
  • 当线程数小于核心线程数,即便有空闲线程,线程池也会优先建立新线程处理
  • 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭

2. queueCapacity: 任务队列容量(阻塞队列)

当核心线程数达到最大时,新任务会放在队列中排队等待执行htm

3. maxPoolSize: 最大线程数

  • 当前线程数 >= corePoolSize, 且任务对列已满时,线程池会建立新线程来处理任务
  • 当前线程数 = maxPoolSize, 且任务对列已满时, 线程池会拒绝处理任务而抛出异常

4. keepAliveTime: 线程空闲时间

  • 当空闲时间达到keepAliveTime时,线程会退出,直到线程数量等于corePoolSize
  • 若是allowCoreThreadTimeout=true, 则线程会退出,直到线程数量等于0

5. allowCoreThreadTimeout:容许核心线程超时

缺省是falseblog

6. rejectedExecutionHandler: 任务拒绝处理器

  • 当线程数达到maxPoolSize, 且队列已满,会拒绝新任务
  • 当线程池调用shutdown()和线程池真正shutdown之间提交的任务会被拒绝。
相关文章
相关标签/搜索