threadpoolexecutor的参数详解
时间: 2023-09-21 07:12:32 浏览: 104
ThreadPoolExecutor有以下几个参数:
1. corePoolSize:线程池中核心线程数,当线程池中的线程数小于corePoolSize时,新的任务会创建新的线程执行。
2. maximumPoolSize:线程池中最大线程数,当线程池中的线程数等于corePoolSize时,新的任务会被放进任务队列中,当任务队列满了时,新的任务会创建新的线程执行,直到线程数达到maximumPoolSize。
3. keepAliveTime:线程池中非核心线程的存活时间,当一个线程不是核心线程,且空闲时间超过keepAliveTime时,这个线程会被销毁,直到线程数小于corePoolSize。
4. unit:存活时间的时间单位。
5. workQueue:任务队列。线程池中的任务会被放进任务队列中等待执行。
6. threadFactory:线程工厂。为线程池中的线程提供创建新线程的方法,默认是Executors.defaultThreadFactory()。
7. handler:拒绝策略。当任务队列满了且线程池中的线程数已经达到maximumPoolSize时,新的任务会被拒绝执行,可以通过设置拒绝策略来处理这种情况。ThreadPoolExecutor中提供了四种拒绝策略,分别是AbortPolicy、CallerRunsPolicy、DiscardPolicy和DiscardOldestPolicy。
这些参数可以根据具体的业务需求进行设置,例如如果需要快速响应请求,可以将corePoolSize设置较大,如果需要更好地控制系统资源,可以将maximumPoolSize设置较小,等等。但需要注意的是,不合理的参数设置可能会导致线程池过大或过小,从而影响系统的性能和稳定性。
阅读全文