- 核心线程数(corePoolSize):指定线程池中保持活动状态的核心线程数量。即使这些线程处于空闲状态,也不会被回收。默认情况下,核心线程数为 0。
- 最大线程数(maximumPoolSize):指定线程池中允许存在的最大线程数量,包括核心线程和非核心线程。当工作队列已满且所有核心线程都处于活动状态时,线程池可以创建更多的线程来处理任务。默认情况下,最大线程数为 Integer.MAX_VALUE。
- 空闲线程存活时间(keepAliveTime):指定非核心线程空闲时的存活时间。当线程池中的线程数量超过核心线程数,并且空闲时间超过指定的值时,多余的线程将被终止,以减少资源消耗。默认情况下,空闲线程存活时间为 60 秒。
- 工作队列(workQueue):用于保存待执行任务的阻塞队列。线程池中的线程从队列中获取任务并执行。常见的队列类型包括
java.util.concurrent.ArrayBlockingQueue
、java.util.concurrent.LinkedBlockingQueue
、java.util.concurrent.SynchronousQueue
等。 - 线程工厂(threadFactory):用于创建新线程的工厂。默认情况下,使用默认的线程工厂来创建线程。
- 拒绝策略(rejectedExecutionHandler):当线程池已满并且无法接受新任务时,采取的策略。常见的策略包括抛出异常、丢弃任务或在调用者线程中执行任务。
由于实现了函数式接口,线程池内可以使用兰姆达表达式简化代码