ThreadPoolExecutor的七大常用参数
参数 | 作用 |
---|---|
corePoolSize(核心线程数) | 1. 创建线程池时,默认线程数为0; 2. 当有任务请求时,如果线程数小于核心线程数,线程池会创建一个线程去执行此任务;如果线程数大于等于核心线程数,把任务放到缓存队列中 |
queueCapacity(任务队列容量,即阻塞队列) | 是spring线程池的参数,默认值Integer.MAX_VALUE |
workQueue(任务队列) | 是JDK线程池的参数,用来存储被提交但尚未被执行的任务 |
maximumPoolSize(最大线程数) | 1. 核心线程数<=线程数<最大线程数 ,且任务队列已满,线程池会创建新的线程执行任务; 2. 线程数 = 最大线程数,且任务队列已满,线程池会拒绝执行任务并抛出异常 |
keepAliveTime(线程空闲时间) | 当线程数超过核心线程数时,会将部分线程空闲时间超过keepAliveTime的线程销毁,直到线程数等于核心线程数 |
allowCoreThreadTimeout(允许核心线程超时) | 若线程空闲不允许退出(默认false) |
handler(拒绝策略) | 当线程数量达到maxPoolSize时的处理策略 |