为什么需要线程池?
在实际使用中,线程是很占用系统资源的,如果对线程管理不完善的话很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处:
- 使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建销毁时造成的消耗
- 由于没有线程创建和销毁时的消耗,可以提高系统响应速度
- 通过线程池可以对线程进行合理的管理,根据系统的承受能力调整可运行线程数量的大小等
线程池的分类
newCachedThreadPool
:创建一个可进行缓存重复利用的线程池。newFixedThreadPool
:创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,线程池中的线程处于一定的量,可以很好的控制线程的并发量。newSingleThreadExecutor
: 创建一个使用单个worker线程的Executor,以无界队列方式来运行该线程。线程池中最多执行一个线程,之后提交的线程将会排在队列中以此执行。newSingleThreadScheduledExecutor
:创建一个单线程执行程序,它可安排在给定延迟后运行命令或者定期执行。newScheduledThreadPool
:创建