1、减少线程创建和销毁的消耗,提高线程复用
2、参数:
核心线程数、最大线程数、空闲的非核心线程存活时间、存活单位、任务队列、线程工厂、拒绝策略(丢弃任务抛异常,丢弃任务,淘汰旧的、调用者执行)。
allowCoreThreadTimeout:默认false,表示核心线程不可消耗。
3、创建:
Excutors创建:固定线程数、单个线程、无穷线程(队列无效)
ThreadPoolExcutor创建:灵活配置参数
4、工作流程:
小于核心线程数,则创建线程,大于核心线程数,则加入队列,队列满了且未达到最大线程数,则创建线程,队列满且达到最大线程数,执行拒绝策略。
5、参数设置
CPU密集:线程数少点,服务器核数+1
IO密集:线程数多点,2*服务器核数
也可在运行时,动态配置 核心线程数、最大线程数、队列大小
6、预热线程池
prestartCoreThreads
prestartAllCoreThreads
7、队列