使用线程池的好处
1、减少反复创建和销毁线程的资源开销,线程池中的线程可反复使用;
2、通过设置合适的线程数,可以避免资源使用不当,线程池可通过设置线程数和任务队列灵活控制线程的数量,请求大时自动创建线程,请求少时只保留核心线程,避免系统资源浪费和过多的线程导致的内存溢出;
3、线程池可以统一管理资源,通过线程数和任务队列,控制开始和结束时间,可以设置拒绝策略;
线程池各个参数含义
corePoolSize:核心线程数,常驻线程池的线程数量
maxPoolSize:线程池最大线程数量,当任务特别多的时候,corePoolSize线程数量无法满足需求的时候,就会继续创建线程,最大不超过maxPoolSize.
KeepAliveTime+时间单位:空闲线程的存活时间
ThreadFactory:线程工厂,用来创建线程
WorkQueue:任务队列,用来存放任务
Handler:处理被拒绝的策略
线程池任务处理流程
提交任务--> 核心线程数-->任务队列-->最大线程数-->handler执行策略