A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡建彪 黑马帝   /  2012-10-27 13:31  /  1073 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定时器类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!!");
    }
}
貌似定时器这个东东在游戏开发中有很多应用,欢迎大神们来踩踩。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马