下面三种线程池底层都是调用的ThreadpoolExecutor这个方法,ThreadpoolExecutor()构造方法包含七大参数,想要了解线程池底层原理,必须掌握这七大参数的含义
- Executors.newFixedThreadPool(int)
- Executors.newSingleThreadPool()
- Executors.newCachedThreadPool()
ThreadpoolExecutor(int corePoolSize,
int maxmumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockQueue<Runable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler){}
7大参数介绍:
- corePoolSize
- 当创建线程池之后,当有任务来之后,就会安排池中的线程去执行请求任务,可以理解成今日当值窗口
- 当线程池中的线程到达corePoolSize之后,就会把到达的任务放到缓存队列中
- maxmumPoolSize
- 线程池能够容纳同时执行的最大线程数
- keepAliveTime
- 线程空闲时间
- 当线程空闲时间达到keepAliveTIme时,线程会退出,直到线程数量=corepoolSize
- unit
- keepAlive