定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定指定的任务task在指定的延迟delay后执行。
定时器任务类TimerTask是抽象类,继承并重写其run()方法,可实现具体任务。
下面写个小程序 : 实现5秒后执行task1,6秒后执行task2,并且之后每隔500毫秒执行一次task1,每隔501毫秒执行一次task2。
import java.util.*;
class TimerTest2{
public static void main(String args[]){
Timer t = new Timer();
MyTask1 task1 = new MyTask1();
MyTask2 task2 = new MyTask2();
t.schedule(task1,5000,500); //定时5000毫秒后开始执行task任务,并且以后每隔500毫秒执行一次task任务。
t.scheduleAtFixedRate(task2, 6000, 501);//设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
for(int i = 0; i< 100; i++){
System.out.println(i);
try {
Thread.sleep(100); //休眠100毫秒,时间到到后,自动恢复继续执行。
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class MyTask1 extends TimerTask{ // 要执行的任务,继承TimerTask类,覆盖run 方法,在run方法中定义要执行的任务代码。
public void run(){ // 其实是TimerTask 已经实现了Runnable 接口。
System.out.println("getup !getup!!");
}
}
class MyTask2 extends TimerTask{
public void run(){
System.out.println("go to work!!");
}
}
貌似定时器这个东东在游戏开发中有很多应用,欢迎大神们来踩踩。
|