定时器
定时器:可以让我们在指定的时间内做某件事情,还可以重复的做某件事情
依赖Timer和TimerTask这两个类
Timer:定时
public Timer()
public void schedule(TimerTask task,long delay) 在指定延迟后执行指定任务
public void schedule(TimerTask task,long delay,long period) 安排指定的任务从指定的延迟
后开始进行重复的固定延迟执行
cancel() 终止此计时器,丢弃所有当前已经安排的任务
TimerTask:任务
创建定时器对象
Timer t = new Timer();
指定定时器方法,延迟执行某个任务
t.schedule(new MyTask(),1000);
结束任务
t.cancel();
完整例子
package demo12;
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
public static void main(String[] args) {
Timer timer = new Timer();
//t.schedule(new MyTask(),1000);
timer.schedule(new MyTask(timer), 3000);//通过构造将timer传入类之中
}
}
class MyTask extends TimerTask{
private Timer timer;
public MyTask(Timer timer) {
this.timer = timer;
}
@Override
public void run() {
System.out.println("3秒后上厕所");
timer.cancel();
}
}
一段时间后执行,不成功,每隔另一端时间后执行一次
t.schedual(new MyTask2(),3000,2000);
完整例子
public class TimerDemo {
public static void main(String[] args) {
Timer timer = new Timer();
//3秒执行上厕所第一次,不成功,每隔2秒再进上厕所
timer.schedule(new MyTask(), 3000, 2000);
}
}
class MyTask extends TimerTask{
@Override
public void run() {
System.out.println("3秒后上厕所");
}
}
在指定时间删除指定目录
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
public static void main(String[] args) throws ParseException {
Timer timer = new Timer();
String string= "2018-10-01 12:11:11";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = simpleDateFormat.parse(string);
timer.schedule(new MyTask(), parse);
}
}
class MyTask extends TimerTask{
@Override
public void run() {
//使用递归删除目录下所有文件以及目录
}
}