Java Timer使用

Timer类是一种线程设施,可以用来实现某一个时间某一段时间后安排某一个任务执行一次定期重复执行。该功能和TimerTask抽象类配合使用。
TimerTask抽象类实现了Runnable接口,用于实现由Timer安排的一次或重复执行的某个任务。
每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否则会延迟后续的任务执行。

java.util.Timer类

1、void cancel()       终止此计时器,将任务队列中全部的任务清空
2、int purge()           从此计时器的任务队列中移除所有已取消的任务
3、void schedule(TimerTask task, Date time)  安排在指定的时间执行指定的任务,如果时间是过去的,则计划立即执行任务。
4、void schedule(TimerTask task, long delay)  安排在指定的延迟后执行指定的任务。
5、void schedule(TimerTask task, Date firstTime, long period)  安排指定的任务指定的时间开始进行重复的固定执行。
6、void schedule(TimerTask task, long delay, long period)  安排指定的任务指定的延迟后开始进行重复的固定执行,时间单位是ms,从指定延迟之后开始。随后的执行大约按规定的时间间隔执行。在固定执行中,每一次执行都是相对于前一次执行的实际执行时间进行调度的。如果一个执行因为任何原因(比如垃圾收集或其他后台活动)被延迟,后续的执行也会被延迟。
7、void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)  安排指定的任务指定的时间开始进行重复的固定速率执行。
8、 void scheduleAtFixedRate(TimerTask task, long delay, long period)  安排指定的任务指定的延迟后开始进行重复的固定速率执行,从指定的延迟之后开始。随后的执行大约以固定的时间间隔进行,间隔为指定的时间段。固定速率执行中,每个执行都是相对于初始执行的计划执行时间进行调度的。如果一个执行因为任何原因(比如垃圾收集或其他后台活动)被延迟,那么两个或两个以上的执行将快速连续发生以“赶上”。

java.util.TimerTask抽象类

1、boolean cancel()       将自身从任务队列中清除,其他任务不受影响
2、abstract  void run()    此计时器任务要执行的操作
3、long scheduledExecutionTime()    返回此任务最近实际执行的已安排执行时间
TimerTask类是个抽象类,如果要用该类,需要自己建立一个类来继承此类,并实现其中的抽象方法。

代码演示

public class MyTimerTastDemo extends TimerTask {
    @Override
    public void run() {
        // TODO Auto-generated method stub
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");  
        System.out.println("当前的系统时间为:"+simpleDateFormat.format(new Date()));
    }
}
public class TimerDemo {
    public static void main(String[] args) {
        Timer t = new Timer();
        MyTimerTastDemo mt = new MyTimerTastDemo();
        t.schedule(mt, 3000);
    }
}

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页