e_timer_基本使用_20210221

基本说明

  • JDK1.3引入

  • 允许按照固定频率重复执行某项任务

  • 无法现实与日历相关的的任务调度,例如:每周一08:00执行

  • 只适合对执行时间非常短的任务进行调度,因为在Timer中所有的TimerTask都在同一背景线程中执行,长时间的任务会严重影响到Timer的调度工作。

基本使用

0:编写TimerTask的子类
1:创建TimerTask对象
2:创建Timer对象
3:调用Timer对象方法执行任务

范例

public class SimpleTimerTask extends TimerTask {

    private int count = 0;

    @Override
    public void run() {
        System.out.println("第" + count + "次任务执行.");
        // 获取本次安排执行的时间点
        Date exeTime = new Date(scheduledExecutionTime());
        System.out.println("本次任务安排执行时间点为:" + exeTime);
        // 在第2次执行后主动退出
        if (++count > 1) {
            cancel();
        }
    }
}
public class TimerRunner {
    public static void main(String[] args) throws InterruptedException {
        Timer timer = new Timer();
        TimerTask task = new SimpleTimerTask();
        timer.schedule(task, 1000L, 5000L);
        System.out.println("开始时间:" + new Date());
        TimeUnit.SECONDS.sleep(20);
        // 如果不执行cancel(),程序不会结束
        timer.cancel();
        System.out.println("结束时间:" + new Date());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值