Java定时任务调度学习-----Timer

本文详细介绍了Java中的定时任务调度工具Timer,包括Timer的主要构件、schedule和scheduleAtFixedRate的多种用法,以及TimerTask的重要函数。通过实例展示了如何使用Timer创建定时任务,如跳舞机器人和灌水机器人,同时也指出了Timer在并发和异常处理上的局限性。
摘要由CSDN通过智能技术生成

什么是定时任务调度

基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务。

Timer定义

Time是jdk自带的一个类,位于java.lang.Object下的java.util.Timer,定义为,有且仅有一个后台线程对多个业务线程进行定时频率的调度。

Timer的主要构件

Timer和TimerTask,timer定时调用TimerTask。

Timer的Hello world

业务逻辑的MyTimerTask类

public class MyTimerTask extends TimerTask{
    private String name;
    public MyTimerTask(String inputName) {
        this.name = inputName;
    }
    @Override
    public void run() {
        //打印当前name的值
        System.out.println("当前的name值为:"+name);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Timer测试类的编写

public class MyTimer {
    public static void main(String[] args) {
        //创建一个timer实例
        Timer timer = new Timer();
        //创建一个MyTimerTask实例
        MyTimerTask myTimerTask = new MyTimerTask("张三丰");
        //设置timer定时定频率的调用myTimerTask的业务逻辑
        //第一次执行是在两秒之后,之后每隔一秒执行一次
        timer.schedule(myTimerTask, 2000L,1000L);
    }
}

Timer的定时调度函数的用法

schedule的四种用法

1.timer.schedule(task, time);在时间等于或超过timer的时候执行且仅执行一次task。
  • task:所有安排的任务
  • time:执行任务的时间

实例如下:
MyTimerTask类做了如下的修改

public class MyTimerTask extends TimerTask{
    private String name;
    public MyTimerTask(String inputName) {
        this.name = inputName;
    }
    @Override
    public void run() {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间为:"+sf.format(calendar.getTime()));
        //打印当前name的值
        System.out.println("当前的name值为:"+name);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

MyTimer类详情如下

public class MyTimer {
    public static void main(String[] args) {
        //创建一个timer实例
        Timer timer = new Timer();
        //创建一个MyTimerTask实例
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值