首页 > 编程语言 >Java定时调度器(Timer、TimerTask)

Java定时调度器(Timer、TimerTask)

时间:2022-11-13 11:34:35浏览次数:75  
标签:Java schedule 调度 Timer 线程 new TimerTask

Timer

它是一个计时器,可以有计划的对线程进行调用。

构造方法:

    

 

其它方法:

难点是schedule  与  scheduleAtFixedRate的区别

移步:Timer中schedule方法和scheduleAtFixedRate方法的区别

TimerTask

是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。

如何使用?继承TimerTask,重写run方法,通过Timer.schedule或者scheduleAtFixedRate进行定时的调用就行啦。

使用

1、准备计时器。                new   Timer();

2、准备任务。                 继承TimerTask类,重写run方法.

3、确定规则,开始执行。        由Timer对象的schedule方法或者scheduleAtFixedRate方法

一般形式:

public class LeaningThread {
    public static void main(String[] args) {
        //程序运行时间
        Calendar cd = new GregorianCalendar(2099,13,14);
        //开启一个调度器,它开启的线程名为奥特曼线程
        Timer tm = new Timer("奥特曼线程");
        //第一个调度器开启了,它会在2099年在控制台输出一句话。
        tm.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("调度器一:现在你还在吗?");
            }
        },cd.getTime());
        //第二个调度器开始了,它会在2秒后在控制台循环输出一句话,间隔是2秒。
        tm.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"调度器二:现在你还在吗?");
            }
        },2000,1000);
        try {
            //五秒后main线程中把调度器关闭
            Thread.sleep(5000);
            tm.cancel();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

运行结果:

 

 总结

 

使用Timer和TimerTask可以有计划地执行线程。

 

 

 

 

标签:Java,schedule,调度,Timer,线程,new,TimerTask
From: https://www.cnblogs.com/lurenjia-bky/p/16885650.html

相关文章