前言
当我们需要进行大量操作时,单线程同步操作的速率明显不能满足我们的需求。这时我们就要使用多线程技术,用多个线程同时处理多个任务,如各个线程之间又没有数据交流,更是可以使用异步方法加快任务的执行。
而线程的创建和销毁都需要占用资源,这时就要用到线程池技术。
一、线程池的运行流程
线程池的作用就是预先创建几个线程(核心线程),核心线程的生命周期与线程池一致,随着线程池的创建而创建,随着线程池的销毁而销毁。
当核心线程被占满,新提交的任务会排列在阻塞队列中,核心线程空闲后,会立即处理阻塞队列中的任务。
当线程执行完分配到的任务,又会回到线程池中等待下一次调用。
当阻塞队列为空、线程空闲超过一个特定的时间,线程池就会销毁多余的线程,保留还在运行的线程,且至少保留“核心线程数”个线程。
所以,使用线程池技术只需要定义线程池中的几个属性,线程池会自动为你完成 分配任务、创建线程、空闲线程复用、空闲线程回收 等任务。
二、线程池实现类ThreadPoolTaskExcutor
1.引入库
代码如下(示例):