目录
线程池的好处
降低资源消耗:通过重复利用已经创建好的线程来降低线程创建和销毁造成的消耗
提高响应速度:当有任务时,任务可以不用等待线程创建直接执行
提高线程的可管理性:线程池可以进行统一的分配,调优和监控
原生创建线程池
万剑归宗,剑来。所有创建线程池的方法中都调用了 ThreadPoolExecutor 方法,一共有四个构造方法,只有参数不同。
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue)
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory)
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler)
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
第四个参数最多,下表格解释了每个参数分别代表的意思
corePoolSize |
核心线程数 |
maximumPoolSize |
最大线程数 |
keepAliveTime |
空闲线程存活时间 |
unit |
时间单位 |
workQueue |
任务队列 |
threadFactory |
线程工厂 | </