corePoolSize 核心线程数
maximunPoolSize 最大线程数
keepAliveTime 多余空闲线程最大保持时间
unit 保持时间的单位
workQueue 阻塞队列,用于保存等待被执行的任务。任务必须实现Runnable接口
threadFactory 创建线程工厂
handler 饱和策略
新建一个线程池,池中初始化corePoolSize个数的线程
当有任务过来时(假设任务数为n):
若n <= corePoolSize,则直接执行task
若n > corePoolSize,超出corePoolSize个数的任务塞入阻塞队列中
当阻塞队列塞满时,会在线程池新建线程来执行 corePoolSize < n <= maximumPoolSize 部分的任务
再超出的任务,则执行handler指定的饱和策略进行处理。(默认饱和后直接抛出异常)
当任务都执行完毕后,线程保持空闲状态。corePoolSize < n <= maximumPoolSize部分的线程会保持 keepAliveTime 时间长度,超出后自动释放。
网友评论