线程池:至少一个线程+任务队列
首先线程池是一种线程使用模式。
线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护者多个线程,等待监督管理者分配可并发执行的任务。即在初始化的时候,创建一定数量的线程(有最大限制),从任务队列中获取任务,进行处理。
作用:
1.避免为大量请求创建线程,导致瞬间资源耗尽程序崩溃的问题。
2.避免大量线程频繁创建销毁所带来的时间成本。
这就要求我们在程序的初始化时,创建固定数量的线程(最大数量限制),从任务队列中获取任务,进行处理。
线程池的实现:线程创建+线程安全的任务队列的实现
1.创建固定数量的线程,创建线程安全的任务队列。
2.循环从任务队列中获取任务对象,执行任务对象中的接口和数据。
线程池的应用场景:
1.需要大量的线程来完成任务,并且完成任务的时间比较短。例如:web服务器完成网页请求这样的任务。
2.对性能要求苛刻的应用,例如:服务器迅速响应客户的请求。
3.接收突发性的大量请求,但不至于使服务器因此产生大量线程的应用。