Java--Timer--使用/常用方法/实例
原文网址:Java—Timer—使用/常用方法/实例_IT利刃出鞘的博客-CSDN博客
简介
本文用示例介绍Java中的定时器Timer的用法。
方法大全
默认情况下,Timer 创建的线程为用户线程, 如果想让其为守护进程的话, 创建时需要设置isDaemon 为true。
构造方法
方法 | 方法描述 |
public Timer(String name) | 构造方法,创建定时器,并指定线程名称。以定时调度线程为用户线程 |
public Timer(boolean isDaemon) | 构造方法,创建定时器,isDaemon 设置为true时表示以守护线程执行 |
public Timer(String name, boolean isDaemon) | 构造方法,创建定时器,并指定线程名称。isDaemon 设置为true时表示以守护线程执行 |
其他方法
方法 | 方法描述 |
public void schedule(TimerTask task, long delay) | 只调度一次,迟delay毫秒之后执行 |
public void schedule(TimerTask task, Date time) | 只调度一次,在具体时刻time 执行 |
public void schedule(TimerTask task, long delay, long period) | 循环调度,在delay毫秒之后开始,每隔period毫秒执行一次 |
public void schedule(TimerTask task, Date firstTime, long period) | 循环调度,在时刻firstTime开始调度,每隔period毫秒执行一次 |
public void scheduleAtFixedRate(TimerTask task, long delay, long period) | 和schedule方法类似,只是错过的任务会被继续执行 |
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) | 和schedule方法类似,只是错过的任务会被继续执行 |
public int purge() | 清理所有已取消状态的TimerTask |
public void cancel() | 取消所有调度 |
实例
延时调度一次
程序启动3秒之后, 执行一次
public static void main(String[] args) throws InterruptedException {
// 创建定时器
Timer timer = new Timer("myTimer");
// 创建定时任务
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
System.out.println(LocalDateTime.now() + "-hello");
}
};
// 添加调度
timer.schedule(timerTask ,3000);
}
定时调度一次
定时任务在下一分钟00秒时执行一次
public static void main(String[] args) throws InterruptedException {
// 创建定时器
Timer timer = new Timer("myTimer");
// 创建定时任务
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
System.out.println(LocalDateTime.now() + "-hello");
}
};
Date nextMinute = nextMinute();
System.out.println("now:" + new Date() + ", execute:" + nextMinute);
// 添加调度
timer.schedule(timerTask ,nextMinute);
}
// 获取下一分钟的时间
private static Date nextMinute(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE, 1);
calendar.add(Calendar.SECOND, -calendar.get(Calendar.SECOND));
return calendar.getTime();
}
循环调度n次
上边是文章的部分内容,为便于维护,全文已转移到此网址:Java-Timer-使用 - 自学精灵
还没有评论,来说两句吧...