1.线程池的定义
线程池(thread pool)是一种多线程的处理形式,处理过程中将任务添加进队列,然后在创建线程后自动启动这些线程。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能保证内核的充分利用,耗能防止过分调度。
2.线程池的作用
- 重用已经创建好的线程,避免频繁创建导致频繁的GC;
- 控制线程并发数,合理使用系统资源,提高应用性能;
- 可以有效控制线程的执行,比如定时执行,取消执行等。
3.ThreadPoolExecutor
ThreadPoolExecutor有四个重载的构造方法,我们这里来说说参数最多的那一个重载的构造方法,这样大家就知道其他方法参数的含义了,如下:
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
<