ScheduleExecutorService接口

int poolSize = 500;//定义线程调度池
ScheduledExecutorService execSrv = Executors.newScheduledThreadPool(poolSize);


//启用线程调度
ChildThread childThread = new AlarmChildThread(1, ruleList);
int period = 30;//调用周期
long initialDelay = 60;//延迟时间
execSrv.scheduleAtFixedRate(childThread, initialDelay, period * 60000, TimeUnit.MILLISECONDS);

scheduleAtFixedRate有两个时间参数,initialDelay和period,对应该方法的两个主要功能,即延迟运行任务和周期性执行任务。

childThread:执行线程
initialDelay:初始化延时
period:两次开始执行最小间隔时间
unit:计时单位

public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,  
                long initialDelay,  
                long delay,  
                TimeUnit unit);

command:执行线程
initialDelay:初始化延时
period:前一次执行结束到下一次执行开始的间隔时间(间隔执行延迟时间)
unit:计时单位