线程池:维持固定线程数量的池式结构
1.线程池的线程数量为何是固定数量?
(1).避免线程频繁的创建和销毁
(2).随着线程数量的逐渐增多,系统资源的限制,反而不能提高性能,使操作系统负担增加
2.为什么需要线程池
1.某类任务特别耗时,严重影响该线程(生产者线程)处理其他任务 [耗时等待][耗时处理]
2.把这类任务在其他线程异步执行
3.作用:复用线程资源,充分利用系统资源,异步执行耗时任务
3.线程池中线程数量如何确定?
决定因素一:CPU核心数
决定因素二:任务类型
(1).CPU密集型 : CPU核心数
(2).IO密集型(网络io,磁盘io): 2*CPU核心数
公式: (IO等待时间 + CPU运算时间) * 核心数 / CPU运算时间