java笔记-01

线程池原理-概念

1、线程池管理器:用于创建并管理线程池,包括创建线程池,销毁线程池,添加新任务。
2、工作线程:线程池中线程,在没有任务的时候处于等待状态,可以循环的执行任务。
3、任务接口:每个任务必须实现接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完后的收尾工作,任务的执行状态等。
4、任务队列:用于存放没有处理的任务,提供一种缓冲机制。


image.png

线程池API-接口定义和实现类

image.png

image.png

image.png

线程池原理-任务execute过程

1、是否达到核心线程数量?没达到,创建一个工作线程来执行任务。
2、工作队列是够已满?没满,则将新提交的任务存储在工作队列里。
3、是否达到线程池最大数量?没达到,则创建一个新的工作线程来执行任务。
4、最后,执行拒绝策略来处理这个任务。


image.png

线程数量

如何确定合适数量的线程
计算型任务:cpu数量的1-2倍
IO型任务:相对比计算型任务,需多一些线程,要根据具体的IO阻塞时长进行考量决定。
如tomcat中默认的最大线程数为:200
也可以考虑根据需要在一个最小数量和最大数量间自动增减线程数。

你可能感兴趣的:(java笔记-01)