初夏小谈:全面剖析多线程(四)之线程池
多线程之线程池
一、什么是线程池?
线程池顾名思义:就是就是一堆线程放在一个池子里呵呵。这说的有点过分。可以通过这样的更好的理解线程池是什么?线程池就是一批线程和一个放任务的线程安全队列。这批线程是具有最大数量上限的。线程池可以用来处理并发进行处理从而提高任务处理速度。
二、线程池的实现:
当服务器一瞬间来了大量需要处理的任务时,这时线程池中的线程数量远远少于需要处理任务,那么任务这时所有线程都处理不完,任务就要保存起来,当一个线程处理完任务后就再去保存的线程队列中取任务来处理。
所有在实现线程池时需要实现一个显示当前的线程数量以及最大线程数量和一个安全队列。、
代码实现:
运行结果:
三、线程池的作用:
1.避免创建和销毁大量线程的时间成本。
2.避免峰值压力,而导致线程创建太多系统资源耗尽而引发服务器宕机崩溃的情景(天猫双十一)
3.支持并发操作。
4.支持忙闲不均。
5.解耦和。
珍&源码