public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) 复制代码
corePoolSize:核心线程数,如果运行的线程数小于corePoolSize,则创建新线程来执行新任务,即使线程池中的其他线程是空闲的。
maximumPoolSize:最大线程数,可允许创建的线程数,corePoolSize和maximumPoolSize设置的边界自动调整线程池的大小。
corePoolSize
corePoolSize=运行的线程数=maximumPoolSize:创建固定大小的线程池。
keepAliveTime:如果线程数多于corePoolSize,则这多于的线程的空闲时间超过keepAliveTime时将被终止
unit:keepAliveTime参数的时间单位
workQueue:保存任务的阻塞队列,与线程池的大小有关:
当运行的线程数少于corePoolSize时,在有新任务时直接创建新线程来执行任务而无需再进队列
当运行的线程数等于或者多于corePoolSize,在有新任务添加时则加入队列,不直接创建线程
当队列满时,再有新任务加入时则创建新线程。
threadFactory:使用threadFactory创建新线程,默认使用defaultThreadFactory创建新线程。
handler:定义处理呗拒绝任务的策略,默认使用ThreadPoolExecutor.AbortPolicy,任务呗拒绝时抛出RejectExecutorException.