ThreadPoolExecutor的七个核心参数及详解
时间: 2023-11-17 09:02:34 浏览: 112
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。
阅读全文