深入理解Java线程池
线程池简述
线程池是一种多线程的处理方案,它采用了池化思想,减少了创建和释放资源引起的不必要的系统开销。在Java中,线程池通常用来做异步调度、资源复用、并发处理、周期执行等事情。
jdk中线程池的结构
顶级接口为:Executor
核心类为:ThreadPoolExecutor和它的子类ScheduledThreadPoolExecutor
ThreadPoolExecutor的参数
1.corePoolSize:核心线程数,该值必须为正整数,当然0也可以,最大值为2的31次方-1
2.maximumPoolSize:最大线程数,该值必须为正整数,最大值为2的31次方-1
3.keepAliveTime:线程不用时保持活跃的时间,该值必须为正整数,最大值为2的63次方-1
4.unit:keepAliveTime的时间单位
5.workQueue:阻塞队列,通常用ArrayBlockingQueue或者LinkedBlockingQeque,注:队列为BlockingQueue<>
6.threadFactory:线程工厂,默认值为:DefaultThreadFactory
7.handler:拒绝策略,默认值为:AbortPolicy
注:unit、workQueue、threadF