黑马程序员技术交流社区

标题: 定时器的一些理解。 [打印本页]

作者: 胡建彪    时间: 2012-10-27 13:31
标题: 定时器的一些理解。
定时器类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!!");
    }
}
貌似定时器这个东东在游戏开发中有很多应用,欢迎大神们来踩踩。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2