线程池(thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,对线程统一管理。
线程池就是存放线程的池子,池子里存放了很多可以复用的线程。
创建线程和销毁线程的花销是比较大的(手动new Thread 类),创建和消耗线程的时间有可能比处理业务的时间还要长。这样频繁的创建线程和销毁线程是比较消耗资源的。(我们可以把创建和销毁的线程的过程去掉)。
线程池构造函数的参数

添加线程规则
1. 如果线程数小于corePoolSize,即使其他工作线程处于空闲状态,也会创建一个新线程来运行新任务。
2. 如果线程数等于(或大于)corePoolSize但小于maximumPoolSize,则将任务放入队列中。
3. 如果队列已满,并且线程数小于maxPoolSize,则创建一个新线程来运行任务。
4. 如果队列已满,并且线程数大于或等于maxPoolSize,则拒绝该任务。
增减线程的特点

线程池应该手动创建还是自动创建
newSingleThreadExecutor
newCachedThreadPool
newScheduledThreadPool
正确的创建线程池
根据不同的业务场景,自己设置线程池参数。
线程池里的线程数量设定为多少比较合适
停止线程池的正确方法