// 第一种方法:设定指定任务task在指定时间time执行后执行TimerTask方法(执行一次)
public static void timer1(){
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
System.out.println("任务1开始执行了--");
}
}, 2000);//设定指定的时间time,此处为2000毫秒
}
//第二种方法:指定1000毫秒以后开始执行TimerTask方法,然后相隔5000毫秒执行一次,下一次的执行时间点=上一次程序执行完成的时间点+间隔时间
public static void timer2(){
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
System.out.println("任务2开始执行了--");
}
}, 1000,5000);
}
// 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
//下一次的执行时间点=上一次程序开始执行的时间点+间隔时间 ;如果前一个任务要执行5秒,而当前任务已经开始执行了,因此两个任务间存在重叠,需要考虑线程同步
public static void timer3(){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask(){
public void run(){
System.out.println("任务3开始执行了--");
}
}, 1000, 5000);
}
// 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.
public static void timer4(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
System.out.println("任务4开始执行了--");
}
},time, 1000*60*60*24);
}
public static void main(String[] args) {
// timer1();
// timer2();
// timer3();
timer4();
}