Java计时任务——Timer和TimerTask

以往通常会使用Thread的sleep方法来达到计时效果
现在看到Java还提供了这方面的类,学习一下用法

//常规用法
//通过给Timer设定TimerTask类实现定时任务
//第二个参数表示何时开始任务
//第三个参数表示间隔多少时间执行一次任务 (该参数可选)
//时间均是以毫秒计算
//注意这种计时并非完全准确,可能会有误差
Timer timer = new Timer(new TimerTask() {
    @Override
    public void run() {
        //这里编写想实现的功能
    }
}, 0, 1000);
//停止计时任务
timer.cancel();

//深入使用
//继承TimerTask类实现自己的TimerTask类
//实现可自动停止的计时任务
public class MyTimerTask extends TimerTask {
    private Timer timer;
    //通过添加带参数的初始化方法
    //得以告知外部的Timer什么时候停止
    public MyTimerTask(Timer outTimer) {
        timer = outTimer;
    }
    
    @Override
    public void run() {
        //这里实现想要的功能
        //如果想停止,这里添加条件判断
        if (/*终止条件*/) {
            timer.cancel();
        }
    }
}
Last modification:May 9th, 2019 at 12:20 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment