1.线程池的好处
- 降低资源的消耗。
- 提高响应速度
- 提高线程的可管理性
2.线程池的运行流程
首先判断核心线程是否已满,如果未满,则直接从核心线程中创建一个线程;如果满了,判断任务队列是否全满,如果任务队列没有满,就把任务放入任务队列,满了就判断线程池的全部线程是否都在忙,如果忙就交给饱和策略去处理,否则就创建一个线程来帮助核心线程处理任务。
3.重要参数
CorePoolSize:核心线程数大小
MaximumPoolSize:最大核心线程数
KeepAlivieTime:终止时间
WorkQueue:任务缓存队列
ThreadFactory:线程工程,主要用来创建线程
4.饱和处理策略
ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出异常
ThreadPoolExecutor.DiscardPolicy:丢弃任务,不抛出异常
ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列任务最前面的任务,然后重试
ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务