自学内容网 自学内容网

线程池核心参数有哪些

线程池核心参数解释:

1、corePoolSize:核心线程数

  • 核心线程会一直存活,及时没有任务需要执行
  • 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理

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

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

        当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务

        当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常

3、keepAliveTime:线程存活时间

  • 当线程空闲时间超过存活时间,多余的线程会自动销毁,直到线程数量=corePoolSize
  • 如果最大线程数=核心线程数,那么线程在空闲时也不会被销毁

4、unit:存活时间单位,

        配合线程存活时间共同使用

5、workQueue:线程池执行的任务队列

        当线程池的核心线程都在处理任务时,如果来了新的任务就会被缓存到任务队列中排队等待执行

6、threadFactory:线程的创建工厂

        如果我们创建线程池时不指定此参数,就会使用默认的线程创建工厂方法来创建线程

7、rejectedExecutionHandler:指定线程池拒绝策略

  • 两种情况会拒绝处理任务:
    • 队列已满,且线程数已达到最大线程数(maxPoolSize),就会用到此拒绝策略,属于一种限流保护机制
    • 线程池异常关闭

原文地址:https://blog.csdn.net/u013132244/article/details/143580212

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!