参数:
corePoolSize 核心线程池大小
(1) 当线程池小于corePoolSize时,新提交任务将创建一个新线程执行任务,即使此时线程池中存在空闲线程
(2) 当线程池达到corePoolSize时,新提交任务将被放入workQueue中,等待线程池中任务调度执行
maximumPoolSize 线程池最大容量(容纳的任务量 ,与线程数量没关系)大小
当提交任务数超过maximumPoolSize时,新提交任务由RejectedExecutionHandler处理(拒绝受理新任务)
workQueue
RejectedExecutionHandler 线程拒绝策略
当提交任务数超过maximumPoolSize时,新提交任务由RejectedExecutionHandler处理
线程的提交方法主要是execute和submit。
TimeUnit 时间单位
ThreadFactory 新建线程工厂
keepAliveTime 线程池空闲时,线程存活的时间当线程池中超过corePoolSize线程,空闲时间达到keepAliveTime时,关闭空闲线程
Executors方法提供的线程服务,都是通过参数设置ThreadPoolExecutor来实现不同的线程池机制。
callable用法和runnable的区别:两者都可以实现并发编程,callable有一个泛型返回值,runnable接口没有返回值。