1、多线程七大参数:
corePoolSize核心线程数(正式员工),
maximumPoolSize(正式员工和可调度的外包员工的总合)
keepAliveTime非核心线程数的存活时间
unit非核心线程数的存活时间单位
workQueue任务队列
threadFactory 线程工厂
RejectedExecutionHandler 拒绝策略
多线程中有两种类型的线程干活,核心线程和非核心线程,核心线程数相当于正式员工,非核心线程相当于外包员工,最大线程数=正式员工和可调度的外包员工的总合,正式员工够用的时候只有他们干活,如果不够用(队列满了)时,会调用外包员工干活(创建非核心线程),如果可调用的外包员工还不够用了,则执行拒绝策略(自己根据业务定义)。正式员工默认一直存活(除非被开除),外包员工按设置的存活时间,干完活到期就自动走人。
2、Concurrent包下提供了excutors类,该类提供多种线程泄创建方法:
1. newCachedThreadPool(ThreadFactory threadFactory) 速度快,不建议使用,因为它的最大线程数是integer.max_value. 即非核心线程数最多可以是integer最大值,可以理解为有任务进来,会一直开启非核心新线程(即有多少任务就开多少线程),线程太多会占用cpu,消耗硬件性能,导致cpu100%,拖慢系统,直接体现就是