定时器
- 首先介绍一下一个类:Timer,属于java.util包;
- Timer里面有一个方法:schedule可以控制时间去执行任务;
- 可以看到schedule方法里面的参数都有一个TimerTask类型的。
- TimerTask类来介绍一下:属于java.util包下的,下图可以看出这个类是一个抽象类,并且实现了Runnable接口;
- 如果我们要使用计时器,那么必须要有一个子类来继承TimerTask类,然后重写里面的run方法;
- 现在来举一个例子说一下这四个重载方法;
public class TestTimer {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new MyTask(timer), 5000,1000);
System.out.println("主线程hehe");
MyTask myTask = new MyTask(timer);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = "2019-6-3 19:18:00";
Date date = format.parse(str);
timer.schedule(myTask,date);
}
}
class MyTask extends TimerTask {
Timer timer;
int num = 0;
public MyTask(Timer timer) {
this.timer = timer;
}
@Override
public void run() {
if (num >= 10){
System.out.println("子线程关闭");
timer.cancel();
}
System.out.println("子线程开启");
System.out.println("子线程结束");
num++;
}
}