public class Demo2 {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
System.out.println("执行时间: " + new Date().toString());
System.out.println("l love listen");
}
};
System.out.println("此时: " + new Date().toString());
timer.schedule(timerTask, 1000);
}
}
方法schedule(Timer Task task, long delay, long period)
该方法的作用是以执行schedule ( TimerTask task, long delay, long period)方法当前的时间为参考时间,在此时间基础上延迟指定的毫秒数delay,再以某一间隔period时间无限次数地执行某一任务。
演示
public class Demo3 {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
System.out.println("执行时间" + new Date().toString());
System.out.println("l love listen");
}
};
timer.schedule(timerTask, 1000, 1000);
}
}
凡是使用方法中带有period参数的,都是无限循环执行TimerTask中的任务。
cancel方法
TimerTask类的cancel()方法
TimerTask类中的cancel方法的作用是将自身从任务队列中清除。
public class Demo4 {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
volatile int count = 0;
@Override
public void run() {
System.out.println("执行时间" + new Date().toString());
System.out.println("l love listen");
count++;
if (count == 3) {
System.out.println("执行cancel");
this.cancel();
}
}
};
timer.schedule(timerTask, 1000, 1000);
}
}