定时器

使用定时器的目的就是给它安排任务,让它在指定的时间完成任务

前面两个是在指定延迟后执行或者重复执行,后面两个是在指定时间执行或者重复执行。

new Timer().schedule(new TimerTask() {          
            @Override
            public void run() {
                //实际中会扔一个对象进来,我们就可以在这里操作这个对象的所有方法了
                System.out.println("--boom--");//爆炸
            }
        }, 2000,3000); 

定义了一个TimerTask对象,需要重写run()方法,然后运行这个程序,可以看出来第一次2秒钟后打印“–boom–,后面每隔3秒打印一次。

如果我想要隔2秒执行一次,再隔4秒执行一次,再隔2秒执行一次,再隔4秒执行一次……这该如何实现呢? 

public class TraditionalTimer {

    public static void main(String[] args) {

        new Timer().schedule(new MyTimerTaskA(), 2000);//A和B随便开一个

        while(true) {//打印秒钟,一秒输出一次
            System.out.println(new Date().getSeconds());
            try {
                Thread.sleep(1000);
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    }

}
//自定义两个定时器任务类,继承TimerTask即可
class MyTimerTaskA extends TimerTask {

    @Override
    public void run() {
        System.out.println("--boomA--");
        new Timer().schedule(new MyTimerTaskB(), 4000);
    }           
}
class MyTimerTaskB extends TimerTask {

    @Override
    public void run() {
        System.out.println("--boomB--");
        new Timer().schedule(new MyTimerTaskA(), 2000);
    }   
}

参考:

https://blog.csdn.net/eson_15/article/details/51523842

 

posted on 2018-09-30 22:10  溪水静幽  阅读(127)  评论(0)    收藏  举报