线程是调度CPU的最小执行单元
线程模型分类
- 用户级线程
应用自己去维护自己去创建和调度
- 内核级线程
内核去创建去管理
JVM是内核级线程
java线程和系统内核线程
Java线程创建是依赖于系统内核,通过JVM调用系统库来创建内核线程
线程池的优势
重用存在的线程,减少线程的创建,消亡的开销,提高性能
提高相应速度,当任务到达时,任务不需要等到线程创建就能立即执行
提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以统一的分配,调优和监控
什么时候需要使用线程池
单个任务时间比较短
需要处理的任务量比较大的
线程池原理:就是一些线程的集合,线程的状态不是死亡状态,当线程池从外面接受任务时,线程池管理器会查看是否有是否有空闲线程,如果有,会分配给它,若没有,任务处于等待队列中。