Java 定时器(Timer,TimerTask)详解及实例代码

Java 定时器(Timer,TimerTask)详解及实例代码

什么是定时器

在 Java 中,我们可以使用定时器(Timer)来实现一些定时任务,比如定时执行某个任务或者在一定时间后自动执行某个操作。

在 Java 中,我们可以通过 Timer 类来创建一个定时器对象,然后通过 TimerTask 类来创建一个定时任务对象,最后调用定时器对象的 schedule 方法来执行定时任务。

Timer 类

Timer 类位于 java.util 包,用于创建一个定时器对象:

Timer timer = new Timer();

在创建了 Timer 对象之后,我们可以通过调用 schedule 方法来执行一个定时任务。

TimerTask 类

TimerTask 类同样位于 java.util 包,用于创建一个定时任务对象,我们需要继承 TimerTask 类,并实现其中的 run 方法:

class MyTask extends TimerTask {
    public void run() {
        // 在这里编写具体的任务逻辑代码
    }
}

在 MyTask 的 run 方法中,我们可以编写具体的任务逻辑代码,比如打印一段文字或执行一些操作。

定时任务调度

定时任务调度主要有两个方法:schedule 和 scheduleAtFixedRate。

schedule 方法

schedule 方法用于在指定时间执行一次定时任务,其签名如下:

public void schedule(TimerTask task, Date time)

其中,task 表示要执行的定时任务对象,time 表示要执行任务的时间。

Timer timer = new Timer();
MyTask task = new MyTask();
timer.schedule(task, new Date());

上面的代码表示,创建一个 Timer 对象,并通过 schedule 方法指定在当前时间执行一次 MyTask 类型的任务。

scheduleAtFixedRate 方法

scheduleAtFixedRate 方法用于按照固定的时间间隔执行定时任务,其签名如下:

public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

其中,task 表示要执行的定时任务对象,firstTime 表示要执行任务的时间,period 表示任务执行的间隔时间。

Timer timer = new Timer();
MyTask task = new MyTask();
timer.scheduleAtFixedRate(task, new Date(), 1000);

上面的代码表示,创建一个 Timer 对象,并通过 scheduleAtFixedRate 方法指定在当前时间开始,并且每隔 1 秒执行一次 MyTask 类型的任务。

示例代码

下面是一个简单的示例代码,演示了如何使用定时器来执行定时任务。

示例 1:定时打印 Hello world

import java.util.*;

class MyTask extends TimerTask {
    public void run() {
        System.out.println("Hello world!");
    }
}

public class App {
    public static void main(String[] args) {
        Timer timer = new Timer();
        MyTask task = new MyTask();
        timer.schedule(task, new Date(), 1000);
    }
}

上面的代码表示,创建一个 Timer 对象,并通过 schedule 方法指定在当前时间开始,每隔 1 秒执行一次 MyTask 类型的任务,在任务执行时打印一段文本。

示例 2:定时打印当前时间

import java.util.*;

class MyTask extends TimerTask {
    public void run() {
        Date date = new Date();
        System.out.println("Current time: " + date.toString());
    }
}

public class App {
    public static void main(String[] args) {
        Timer timer = new Timer();
        MyTask task = new MyTask();
        timer.scheduleAtFixedRate(task, new Date(), 1000);
    }
}

上面的代码表示,创建一个 Timer 对象,并通过 scheduleAtFixedRate 方法指定在当前时间开始,每隔 1 秒执行一次 MyTask 类型的任务,在任务执行时打印当前时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 定时器(Timer,TimerTask)详解及实例代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 关于maven使用过程中无法导入依赖的一些总结

    针对“关于maven使用过程中无法导入依赖的一些总结”的问题,我将提供完整的攻略,包括以下几个方面: 确认Maven仓库地址是否正确 在使用Maven构建项目的过程中,很多时候会遇到无法导入依赖的情况。一种情况就是Maven的依赖仓库地址不正确,导致无法下载到所需的依赖。这时候需要确认Maven仓库地址是否正确。可以在maven的settings.xml中修…

    Java 2023年5月20日
    00
  • 详解Java如何简化条件表达式

    为了让您更好地理解Java如何简化条件表达式,我将为您提供以下攻略: 使用三元运算符进行条件判断 Java中的三元运算符:?:可以在单个表达式中代替简单的if-else语句。它使用三元操作符来计算一个表达式,并根据表达式的结果返回两个不同的值中的一个。格式如下所示: (condition) ? expression1 : expression2; 如果条件(…

    Java 2023年5月26日
    00
  • java中VO的使用解析

    Java中VO的使用解析 引言 Java中的VO是指Value Object,即值对象,是为业务需要而创建的对象。它是Java中的一种设计模式,用来处理业务逻辑中的数据,封装对数据的访问和操作。VO通常不关心业务逻辑,只关心数据,一般包含有属性和属性的访问方法。因为它是与业务逻辑无关的,所以VO通常被认为是轻量级的,仅包含数据。 在Java中,VO被广泛应用…

    Java 2023年5月20日
    00
  • 一个例子带你看懂Java中synchronized关键字到底怎么用

    让我来详细讲解“一个例子带你看懂Java中synchronized关键字到底怎么用”的完整攻略。 完整攻略 什么是synchronized关键字? synchronized是Java中的一个关键字,用于线程之间的同步操作。它的作用是给代码块或方法加锁,保证同一时刻只有一个线程可以进入被加锁的代码块或方法。 synchronized关键字的用法 synchro…

    Java 2023年5月26日
    00
  • JavaWeb Maven详解相关配置

    JavaWeb Maven是JavaWeb项目的构建工具,它可以管理和构建JavaWeb应用程序的依赖项,简化项目的构建和部署过程。下面是JavaWeb Maven的详解相关配置的完整攻略。 一、 Maven的安装 下载Maven压缩包(例如:apache-maven-3.8.3-bin.zip); 解压到指定目录(例如:/usr/local/maven);…

    Java 2023年5月19日
    00
  • springmvc和js前端的数据传递和接收方式(两种)

    在Spring MVC和前端JS之间进行数据传递和接收是Web开发中的常见需求。本文将详细讲解两种常见的数据传递和接收方式,并提供两个示例说明。 方式一:表单提交 表单提交是一种常见的数据传递方式,它可以将表单中的数据提交到服务器端进行处理。在Spring MVC中,我们可以使用@RequestParam注解来获取表单数据。下面是一个示例: <!DOC…

    Java 2023年5月18日
    00
  • 浅谈在Spring中如何使用数据源(DBCP、C3P0、JNDI)

    在Spring框架中,我们可以通过不同的数据源来操作数据库,包括DBCP、C3P0和JNDI等。下面将详细介绍在Spring中使用这些数据源的方法。 DBCP DBCP(DataBase Connection Pool)是Apache提供的数据库连接池技术。在Spring中,我们可以通过配置文件来使用DBCP数据源。具体步骤如下: 步骤1:添加依赖 在Mav…

    Java 2023年5月20日
    00
  • Java中Mybatis,SpringMVC,Spring的介绍及联系

    以下是关于“Java中Mybatis,SpringMVC,Spring的介绍及联系”的完整攻略,其中包含两个示例。 1. 前言 Java中的Mybatis、SpringMVC和Spring是三个常用的开发框架,它们各自有不同的作用和特点,但也有联系和互相依赖的地方。本攻略将详细介绍Mybatis、SpringMVC和Spring的作用、特点以及联系。 2. …

    Java 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部