• Java Timer使用介绍


    🚀 优质资源分享 🚀

    学习路线指引(点击解锁) 知识定位 人群定位
    🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
    💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

    java.util包下提供了对定时任务的支持,涉及2个类:

    1. Timer:定时器类
    2. TimerTask:任务抽象类

    使用该定时任务我们需要继承TimerTask抽象类,覆盖run方法编写任务执行代码,并利用Timer定时器对TimerTask进行调度。

    编写一个任务:

    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            System.out.println(DateUtil.formatNow() + " " + Thread.currentThread().getName() + " task run ");
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    接着使用Timer对TimerTask进行调度,Timer提供了多种方法,可分为一次性任务可重复执行任务

    一、一次性任务

    一次性任务是指Timer执行一次之后,该任务后续不再执行。

    一次性任务包括2个方法,如下:

    1. void schedule(TimerTask task, long delay):延迟delay毫秒后执行一次task
    2. void schedule(TimerTask task, Date time):在指定时间time执行一次task,如果time过期,将会立即执行

    二、可重复执行任务

    可重复执行任务是指,任务允许按照设定的规则重复执行。

    可重复执行任务共有4个方法,分为 固定延时 schedule固定速率 scheduleAtFixedRate

    1. void schedule(TimerTask task, long delay, long period):延迟delay毫秒后执行task,之后每隔period毫秒执行一次task
    2. void schedule(TimerTask task, Date firstTime, long period):在指定时间time执行一次task,之后每隔period毫秒执行一次task
    3. void scheduleAtFixedRate(TimerTask task, long delay, long period):延迟delay毫秒后执行task,之后每隔period毫秒执行一次task
    4. void scheduleAtFixedRate(TimerTask task, Date firstTime, long period):在指定时间time执行一次task,之后每隔period毫秒执行一次task

    示例1:schedule方法,延迟delay毫秒后执行task,之后每隔period毫秒执行一次task

    System.out.println("启动于:" + DateUtil.formatNow());
    Timer timer = new Timer("timer");
    timer.schedule(task, 1000, 2000);
    
    • 1
    • 2
    • 3

  • 相关阅读:
    数组模拟环形队列实现
    基于微信小程序的健身小助手打卡预约教学系统(源码+lw+部署文档+讲解等)
    MySQL架构MMM
    Redis学习笔记2:基于springboot的lettuce redis客户端eagerInitialization提前初始化连接
    阿里云全球故障凸显“云集中”风险
    如何用人工智能自动玩游戏
    Mac 使用 Homebrew 安装 Python3
    ArcGIS Pro3.0新特性
    14:Hadoop数据分析|节点管理|搭建NFS网关服务
    【Spring IOC容器加载过程】
  • 原文地址:https://blog.csdn.net/qq_43479892/article/details/127644438