七大参数:
corePoolSize:核心线程数
maximumPoolSize: 最大线程池大小(等队列满了才回去调其他线程处理任务)
keepAliveTime: 生存时间
TimeUnit.SECONDS:空闲时间单位
new ArrayBlcokingQueue<Runable>(capacity:4):任务队列
Excutors.defaultThreadFactory():线程池产生的工厂
new ThreadPoolExcutor.CallerRunsPolicy(): 拒绝策略
重点:最大线程数如何设置?
通过并发量去推算
如果CPU是纯计算,多少任务能把CPU占满? 1个
如果CPU只有50%做计算,多少任务能把CPU占满? 2个
如果CPU只有20%做计算,多少任务能把CPU占满? 5个