文章目录
一、线程池介绍
1、什么是线程池?
- 线程池就是一个可以复用线程的技术。
2、不使用线程池的问题
- 如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,==而创建新线程的开销是很大的,==这样会严重影响系统的性能。
3、线程池工作原理
- 当一提交一个新任务到线程池时,线程池会进行判断核心线程池是否都在执行任务
- 如果核心线程池有空闲线程,则从核心线程池中去一个线程来执行任务,直到当前核心线程全被占用(核心线程池已满)
- 如果当前核心线程池已满,继续提交的任务就会被保存到阻塞队列中,等待被执行
- 如果阻塞队列满了,那就创建一个新的线程执行当前任务,知道线程池中的线程数达到线程池的最大线程数
- 这时再有任务来,由包和策略来处理提交的任务
4、线程池的好处
- 降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的