一:什么是线程池
在Java中new一个线程,除了在堆内存开辟一份空间、初始化一个对象外,还需要进行系统调用,操作系统为线程分配系统资源,当频繁的创建和销毁线程,导致的系统开销非常大,因此使用线程池对线程进行复用可以节省系统资源的开销。
二:线程池的生命周期
线程有五种状态:新建,就绪,运行,阻塞,死亡,线程池同样有五种状态:Running, SHUTDOWN, STOP, TIDYING, TERMINATED。
各个状态的转换如下:
RUNNING:处于RUNNING状态的线程池能够接受新任务,以及对新添加的任务进行处理。
SHUTDOWN:处于SHUTDOWN状态的线程池不可以接受新任务,但是可以对已添加的任务进行处理。
STOP:处于STOP状态的线程池不接收新任务,不