ThreadPoolExecutor的核心参数有哪些?分别有什么作用?

提问者:帅平 问题分类:面试刷题
ThreadPoolExecutor的核心参数有哪些?分别有什么作用?
1 个回答
我怕我伸手不及松手为空
我怕我伸手不及松手为空
ThreadPoolExecutor的核心参数有:
1、corePoolSize:
corePoolSize 是线程池中的核心线程数,即线程池保持活动的最小线程数量。
当有任务提交时,线程池会优先使用核心线程来执行任务。

2、maximumPoolSize:
maximumPoolSize 是线程池中允许的最大线程数量,包括核心线程和非核心线程。
当任务提交给线程池时,如果线程池中的线程数量已经达到核心线程数,且任务队列已满,线程池会创建新的非核心线程来处理任务。

3、keepAliveTime 和 unit:
keepAliveTime 是非核心线程的空闲线程在多长时间内会被保留在线程池中。
unit 参数指定了 keepAliveTime 的时间单位,如 TimeUnit.SECONDS。
超过核心线程数的非核心线程在空闲超过 keepAliveTime 后会被回收。

4、workQueue:
workQueue 是任务队列,用于存放等待执行的任务。
任务队列可以暂时缓解任务提交和任务执行之间的速度差异。

5、threadFactory:
threadFactory 是用于创建新线程的工厂。
可以自定义线程工厂以控制线程的创建过程。

6、handler:
handler 是拒绝策略(RejectedExecutionHandler),用于定义线程池无法接受新任务时的处理方式。
可以选择合适的拒绝策略,如 AbortPolicy、CallerRunsPolicy 等。
发布于:2周前 (04-22) IP属地:四川省
我来回答