ThreadPoolExecutor
ThreadPoolExecutor
是一个可被继承 ( extends ) 的线程池实现,包含了用于微调的许多参数和钩子。
我们并不会讨论 ThreadPoolExecutor 类中的所有的参数和钩子,只会讨论几个主要的配置参数:
1. corePoolSize
2. maximumPoolSize
3. keepAliveTime
ThreadPoolExecutor
创建的线程池由固定数量的核心线程组成,这些线程在 ThreadPoolExecutor 生命周期内始终存在,除此之外还有一些额外的线程可能会被创建,并会在不需要时主动销毁。corePoolSize 参数用于指定在线程池中实例化并保留的核心线程数。如果所有核心线程都忙,并且提交了更多任务,则允许线程池增长到 maximumPoolSize 。
keepAliveTime 参数是额外的线程( 即,实例化超过 corePoolSize 的线程 )在空闲状态下的存活时间。
这三个参数涵盖了广泛的使用场景,但最典型的配置是在 Executors 静态方法中预定义的。
Executors.newFixedThreadPool()
例如,Executors.