一、线程池作用
- 降低资源消耗;提高线程利用率,降低创建和销毁线程的消耗。
- 提高响应速度;任务来了,直接有线程可用可执行,而不需要先创建线程,在执行。
- 提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。
二、线程池核心参数
- corePoolSize :代表核心线程数,也就是正常情况下创建的工作线程数,这些线程创建后并不会销毁,而是会常驻;
- maxinumPoolSize:代表的是最大线程数,它与核心线程数相对应,表示最大允许创建的线程数,比如任务较多,将核心线程数都用完了,仍然无法满足需求时,此时就会继续创建新的线程,但是线程池内线程总数不会超过最大线程数;
- keepAliveTime:表示超出核心线程数之外的线程的空闲时间,也就是说核心线程不会消除,但是超出核心线程数的部分线程如果空闲一定时间则会销毁,我们可以通过设置keepAliveTime来控制空闲时间;
- unit:表示空闲时间的单位
- workQueue:用来存放待执行的任务,假设我们现自核心线程都被使用了,还有任务进来则全部放入等待队列中,直到等待队列放满任务还再继续加入新任务则会创建新的新的线程;
- ThreadFactory:实际上是一个线程工厂,用来生产线程执行任务。我们可以选择使用默认的创建工厂,生产的线程在同一个组内,拥有相同的优先级,且都不是守护线程。当然我