public ThreadPoolExecutor(int CorePoolSize, int MaximumPoolSize, long unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler){ //functions }
序号 名称 类型 含义 1 corePoolSize int 核心线程池大小 2 maximumPoolSize int 最大线程池大小 3 keepAliveTime long 线程最大空闲时间 4 unit TimeUnit 时间单位 5 workQueue BlockingQueue<Runnable> 线程等待队列 6 threadFactory ThreadFactory 线程创建工厂7 handler RejectedExecutionHandler 拒绝策略新线程加入的三种情况 -> 空闲 -> 执行; 都在工作 -> 排队; 都在工作&队排满了 -> new线程,执行 池子满了&队排满了 -> do nothing 1. if current thread count < corePoolSize, Run 2. if current thread count = corePoolSize, Wait(Add to workQueue) 3. if current thread count = corePoolSize & workQueue is full, Add New Thread and Run(count <maxPoolSize) 4. if current thread count = maxiumPoolSize & workQueue is full, Do nothing
ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue ,ThreadFactory threadFactory,RejectedExecutionHandler handler)
corePoolSize:线程池基本大小,没有任务执行时池子的大小
maximumPoolSize:线程最大大小,表示可同时活动的线程数量上限
keepAliveTime:线程最大空闲时间,线程空闲时间超过该值将标记为可回收
unit:线程最大空闲时间的时间单位
workQueue:线程队列,该队列满后线程池会创建超出 corePoolSize 大小的线程数量
threadFactory:线程创建工厂,在线程池需要创建一个线程时会用到
hander:拒绝策略,有 AbortPolicy,CallerRunsPolicy,DiscardPolicy,DiscardOldestPolicy
corePoolSize:线程池的核心大小,也可以理解为最小的线程池大小。
maximumPoolSize:最大线程池大小。
keepAliveTime:空余线程存活时间,指的是超过corePoolSize的空余线程达到多长时间才进行销毁。
unit:销毁时间单位。
workQueue:存储等待执行线程的工作队列。
threadFactory:创建线程的工厂,一般用默认即可。