ThreadPoolExecutor 都有哪些核心参数
时间: 2023-11-02 19:29:54 浏览: 75
ThreadPoolExecutor 的核心参数包括:
1. corePoolSize:线程池中的核心线程数,即线程池中保持活动状态的最小线程数。
2. maximumPoolSize:线程池中允许的最大线程数。
3. keepAliveTime:线程池中空闲线程的存活时间,超过这个时间就会被回收。
4. unit:keepAliveTime 的时间单位。
5. workQueue:线程池中的任务队列,用于存储等待执行的任务。
6. threadFactory:用于创建新线程的工厂。
7. handler:当线程池中的线程数达到最大值并且任务队列已满时,用于处理被拒绝的任务的策略。
相关问题
ThreadPoolExecutor的七个核心参数及详解
Java ThreadPoolExecutor的七个核心参数及详解如下:
1. corePoolSize:线程池中的核心线程数,即在没有任务需要执行时线程池的大小。当有任务需要执行时,线程池会自动扩容,直到达到maximumPoolSize。
2. maximumPoolSize:线程池中允许的最大线程数。当workQueue已满时,线程池会自动扩容,直到达到maximumPoolSize。
3. keepAliveTime:线程池中的非核心线程空闲时的存活时间。当线程池中的线程数大于corePoolSize时,如果这些线程空闲时间超过keepAliveTime,则这些线程会被销毁,直到线程池中的线程数不大于corePoolSize。
4. unit:keepAliveTime的时间单位。
5. workQueue:用于存放等待执行的任务的阻塞队列。常用的有ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue等。
6. threadFactory:用于创建新线程的工厂类。可以自定义线程的名称、优先级等属性。
7. handler:当线程池中的线程数达到maximumPoolSize并且workQueue已满时,新提交的任务会交给handler来处理。常用的有ThreadPoolExecutor.AbortPolicy、ThreadPoolExecutor.CallerRunsPolicy、ThreadPoolExecutor.DiscardOldestPolicy、ThreadPoolExecutor.DiscardPolicy。
ThreadPoolExecutor线程池有哪些参数?
ThreadPoolExecutor线程池有以下参数:
1. corePoolSize:核心线程数,即线程池中始终保持的线程数,即使它们处于空闲状态也不会被回收。
2. maximumPoolSize:最大线程数,即线程池中允许存在的最大线程数,包括空闲线程和阻塞队列中等待的线程。
3. keepAliveTime:线程空闲时间,即当线程池中的线程数量大于核心线程数时,空闲线程的存活时间。
4. TimeUnit:时间单位,用于指定keepAliveTime参数的时间单位。
5. workQueue:工作队列,用于存放等待执行的任务,可以选择不同类型的队列,如ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue等。
6. ThreadFactory:线程工厂,用于创建线程,默认情况下使用Executors.defaultThreadFactory()方法创建线程。
7. RejectedExecutionHandler:拒绝策略,用于处理无法执行的任务,默认情况下使用AbortPolicy策略,即抛出RejectedExecutionException异常。其他策略还包括DiscardPolicy、DiscardOldestPolicy和CallerRunsPolicy。
阅读全文