public class ScheduledKit extends Object
1:scheduleWithFixedDelay 以上一次任务的 "结束时间" 为间隔调度任务 2:scheduleAtFixedRate 以上一次任务的 "开始时间" 为间隔调度任务。当本次调度来临时,如果上一次任务未执行完,则等待它执行完成后再立即调度 3:警告:必须要在被调度的任务(Runnable/Callable)中捕获异常,否则调度将会停止
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
awaitTermination(long timeout,
TimeUnit unit)
在 shutdown 线程池之后,阻塞等待所有任务执行完,或发生超时,或当前线程中断,以先发生者为准
|
static ScheduledExecutorService |
getExecutor() |
static void |
init(int corePoolSize)
初始化
|
static void |
init(ScheduledExecutorService executor)
传递 ScheduledExecutorService 对象进行初始化,从而完全掌控线程池参数
|
static <V> ScheduledFuture<V> |
schedule(long delay,
TimeUnit unit,
Callable<V> task)
创建一次性调度,在给定的 delay 时间后调度
|
static ScheduledFuture<?> |
schedule(long delay,
TimeUnit unit,
Runnable task)
创建一次性调度,在给定的 delay 时间后调度
|
static ScheduledFuture<?> |
scheduleAtFixedRate(long initialDelay,
long period,
TimeUnit unit,
Runnable task)
以固定频率执行任务
|
static ScheduledFuture<?> |
scheduleAtFixedRateWithTryCatch(long initialDelay,
long period,
TimeUnit unit,
Runnable task)
任务添加 try catch ,避免 scheduleAtFixedRate 方法在调度任务出现异常后会终止调度
|
static ScheduledFuture<?> |
scheduleWithFixedDelay(long initialDelay,
long delay,
TimeUnit unit,
Runnable task)
以固定延迟执行任务
|
static ScheduledFuture<?> |
scheduleWithFixedDelayWithTryCatch(long initialDelay,
long delay,
TimeUnit unit,
Runnable task)
任务添加 try catch ,避免 scheduleWithFixedDelay 方法在调度任务出现异常后会终止调度
|
static void |
shutdown()
等待正在执行的线程执行完毕以后,关闭线程池
|
static void |
shutdownNow()
停掉正在执行的线程,关闭线程池
|
public static void init(int corePoolSize)
corePoolSize - the number of threads to keep in the pool, even if they are idlepublic static void init(ScheduledExecutorService executor)
public static ScheduledExecutorService getExecutor()
public static ScheduledFuture<?> scheduleWithFixedDelay(long initialDelay, long delay, TimeUnit unit, Runnable task)
initialDelay - 第一次启动前的延迟delay - 上次任务 "完成" 时间与本次任务 "开始" 时间的间隔unit - 时间单位task - 被执行的任务public static ScheduledFuture<?> scheduleWithFixedDelayWithTryCatch(long initialDelay, long delay, TimeUnit unit, Runnable task)
public static ScheduledFuture<?> scheduleAtFixedRate(long initialDelay, long period, TimeUnit unit, Runnable task)
initialDelay - 第一次启动前的延迟period - 上次任务 "开始" 时间与本次任务 "开始" 时间的间隔,如果任务执行时长超出 period 值,则在任务执行完成后立即调度任务执行unit - 时间单位task - 被执行的任务public static ScheduledFuture<?> scheduleAtFixedRateWithTryCatch(long initialDelay, long period, TimeUnit unit, Runnable task)
public static ScheduledFuture<?> schedule(long delay, TimeUnit unit, Runnable task)
delay - 从现在开始的延迟时间unit - 时间单位task - 被执行任务public static <V> ScheduledFuture<V> schedule(long delay, TimeUnit unit, Callable<V> task)
delay - 从现在开始的延迟时间unit - 时间单位task - 被执行任务public static void shutdown()
public static void shutdownNow()
public static boolean awaitTermination(long timeout,
TimeUnit unit)
throws InterruptedException
Copyright © 2024. All rights reserved.