线程池管理着一个工作者线程的同构池,线程池是与工作列队紧密绑定的。工作列队的作用就是持有所有等待执行的任务,工作者列队只需要从工作列队中获取到下一个任务,执行,然后回到等待下一个线程。
* java类库提供了以下几种线程池
- newFixedThreadPool: 创建线程个数确定的线程池,每当提交一个任务就创建一个线程,直到达到线程池最大长度
- newCachedThreadPool: 创建一个可缓存的线程池,如果当前线程池的长度超过处理的需要,它可以灵活的收回空闲线程,当需求增加时,它可以灵活添加新线程,而并不对池的长度做任何限制.
- newSingleThreadExecutor: 创建单线化的executor,它只创建一个唯一的工作者线程来执行任务,如果这个线程异常结束,会有另外一个线程来取代它。它会保证任务按照任务队列的规定顺序来执行.
- newScheduledThreadPool: 创建一个定长的线程池,而且支持定时的,以及周期性的任务执行,类似Timer.