一、线程池基本介绍
1.线程池的概念
用白话就是说,线程池就是一个池子,在这个池子中已经创建好并且维护了一些线程,没有任务的时候就处于空闲状态,当有新的任务提交时,会看线程池是否有空闲线程,有的话就将线程分配给任务,减少了线程的不断创建而造成的资源的浪费。
2.线程池的优点
(1)减少线程反复创建造成的开销,提高了对资源的利用路
(2)有效的提高对线程的管理能力
二、线程池的执行流程
拒绝策略包括:
(1)AbortPolicy:默认策略,丢弃任务并抛出RejectedExecutionException异常
(2)DiscardPolicy:丢弃任务。不抛弃异常
(3)DiscardOldestPolicy:丢弃队列中的最早进入的任务,提交新的任务
(4)CallRunPolicy:谁调用谁处理
三、线程池的状态
注:线程池被创建出来就处于运行状态,并且池中的任务数量为0。
(1)Running:运行状态
(2)关闭状态:调用shutdown()方法进入此状态;不再接受新任务,但会处理完工作队列中的任务
(3)停止状态:调用shutdownNow()会进入此状态;不接受新任务也不继续执行队列中的任务
(4)整理状态:TIDYING;所有任务都执行完毕,并且记录的任务数为0
(5)终止状态:terminated()方法执行结束后,进入此状态