构造函数:
- public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
创建一个支持定时或周期性的执行任务的线程池,多数情况下可用来替代Timer类。
执行方法:
- schedule(Callable/Runnable, long,TimeUnit)
第一个参数:任务
第二个参数:任务执行前等待的时间
第三个参数:第二个参数的时间单位。 - scheduleAtFixedRate(Runnable ,long ,long ,TimeUnit )
第一个参数:周期性执行的任务,
第二个参数:第一次执行前的等待的时间
第三个参数:两个任务的启动时间的间隔
第四个参数:时间单位
注意:该方法有返回值ScheduledFuture - scheduleWithFixedDelay(Runnable ,long ,long ,TimeUnit )
第一个参数:周期性执行的任务,
第二个参数:第一次执行前的等待的时间
第三个参数:两个任务的时间间隔
第四个参数:时间单位
注意:该方法有返回值ScheduledFuture
public static void main(String[] args){
ScheduledExecutorService executor = Executors.newScheduledThreadPool(10);
// 延迟5秒执行任务
executor.schedule(new Task(), 5, TimeUnit.SECONDS);
executor.shutdown();
while(!executor.isTerminated()){};
}
public static class Task implements Runnable{
@Override
public void run() {
//TODO.
}
}
ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);
Task task=new Task();
ScheduledFuture<?> resultFuture=executor.scheduleAtFixedRate(task, 0, 2, TimeUnit.SECONDS);
for(int i=0;i<10;i++){
System.out.println(
resultFuture.getDelay(TimeUnit.MILLISECONDS));
// Thread.sleep(1000);
};
executor.shutdown();