2024年3月14日发(作者:)

scheduledthreadpoolexecutor 参数

ScheduledThreadPoolExecutor 是 Java 中用于执行定时任务

的线程池实现,它是 ThreadPoolExecutor 的一个扩展。它允许在固

定的时间间隔执行任务或者延迟一定时间后执行任务。以下是

ScheduledThreadPoolExecutor 的一些重要参数:

corePoolSize:

类型:整数

意义:核心线程池大小,即线程池中一直存活的线程数量。

maximumPoolSize:

类型:整数

意义:线程池允许的最大线程数。当线程数达到核心线程数后,

新的任务会被放入工作队列,如果工作队列满了,会创建新的线程,

但数量不会超过最大线程数。

keepAliveTime:

类型:长整数

意义:非核心线程的闲置超时时间。当线程数量超过核心线程数

时,如果线程在空闲时间达到该值,就会被终止。

unit:

类型:时间单位(TimeUnit)

意义:指定 keepAliveTime 的时间单位,可以是秒、毫秒等。

workQueue:

1 / 3

类型:阻塞队列(BlockingQueue)

意义:用于保存等待执行的任务的队列。

ScheduledThreadPoolExecutor 使用 DelayedWorkQueue,这是一个

基于优先级队列的队列,用于按照任务的调度时间进行排序。

threadFactory:

类型:线程工厂(ThreadFactory)

意义:用于创建新线程的工厂。

handler:

类型:拒绝策略(RejectedExecutionHandler)

意义:当线程池无法执行新的任务时,用于处理新任务的策略。

常见的策略有抛出异常、直接丢弃任务、丢弃队列中最老的任务等。

这里还需要注意的是,ScheduledThreadPoolExecutor 除了继承

自 ThreadPoolExecutor 的参数之外,还包含一些用于调度任务的参

数,如 initialDelay 和 period。这两个参数用于设置首次执行任

务的延迟时间和连续执行任务之间的时间间隔。

ScheduledThreadPoolExecutor

ScheduledThreadPoolExecutor(

corePoolSize, // 核心线程池大小

threadFactory, // 线程工厂

handler // 拒绝策略

2 / 3

executor = new

);

// 调度一个任务,延迟initialDelay时间后执行,然后每隔

period时间执行一次

leAtFixedRate(task, initialDelay, period,

S);

以上是 ScheduledThreadPoolExecutor 的一些常见参数及其意

义。具体使用时,根据实际需求进行调整。

3 / 3