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


发布评论