对java中线程池参数的讲解

面试中会问到创建线程池的参数信息,下面我来一一列举出来。

1、corePoolSize:线程池中的核心线程数

核心线程会一直存活(但是可以设置allowCoreThreadTimeout=true,核心线程会超时关闭)。
当线程数小于核心线程数会创建新线程。

2、maxPoolSize:线程池中最大线程数

当线程数大于等于corePoolSize,且任务队列未满时。会将将其存储在任务队列中。
当线程数大于等于corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务
当线程数等于maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常

3、queueCapacity:任务队列

当线程数大于等于corePoolSize,且任务队列未满时。会将将其存储在任务队列中。

4、keepAliveTime:线程空闲时间

当线程的空闲时间达到keepAliveTime时,线程会退出,直到线程的数量等于核心线程。

5、TimeUnit:时间单位

6、threadFactory:创建线程的工厂

7、handler:任务拒绝处理器

当线程数等于maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常

结尾

这就是线程池创建的主要的几个参数的讲解。继续努力。

你可能感兴趣的:(对java中线程池参数的讲解)