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日

相关文章

  • Spring Boot整合MyBatis操作过程

    下面我来详细讲解“Spring Boot整合MyBatis操作过程”的完整攻略,目录如下: 环境准备 创建Maven工程 引入依赖 配置数据源 创建MyBatis映射文件 创建Mapper接口 创建Service和Controller 启动应用程序 示例1:查询全部用户信息 示例2:根据用户名查询用户信息 总结 1. 环境准备 首先需要准备好以下环境:- J…

    Java 2023年5月19日
    00
  • Java删除文件、目录及目录下所有文件的方法实例

    下面是关于Java删除文件、目录及目录下所有文件的方法实例的完整攻略: 使用Java的IO模块删除文件和目录 删除文件的方法 在Java中删除文件可以使用Java自带的IO模块中的 File 类的 delete() 方法,该方法将直接删除指定的文件。下面是代码示例: import java.io.File; public class DeleteFileEx…

    Java 2023年5月20日
    00
  • Java实现调用外部程序的示例代码

    这里我为你提供一份“Java实现调用外部程序的示例代码”攻略: 1. 确认可供调用的外部程序 在Java代码中调用外部程序之前,首先需要确认可供调用的外部程序是否存在及可用。若存在,则可以直接在Java中通过执行外部程序的命令来进行调用,并获取相应的返回值;若不存在,则需要先进行程序安装或者确认是否已经加入环境变量中。 2. Java代码实现调用外部程序 使…

    Java 2023年5月19日
    00
  • JSP一句话木马代码

    首先,需要注意的是,编写和传播木马代码是违法的,本文仅用于学习和研究用途。 JSP一句话木马是一种常见的web后门,可以通过在服务器上运行的JSP文件中注入一段恶意代码的方式,让攻击者可以远程控制服务器,获取敏感信息等。以下是攻击过程的详细说明: 扫描漏洞:攻击者扫描要攻击的目标服务器,尤其是针对常见的web应用程序,如JavaWeb开发中常用的Tomcat…

    Java 2023年6月15日
    00
  • 并发收集器的作用是什么?

    并发收集器是一种提供“与用户线程同时执行”的垃圾收集器,它的主要作用是在垃圾收集过程中不影响应用程序的运行。 在使用并发收集器时,首先需要在JVM启动参数中指定收集器类型,可以使用以下参数: -XX:+UseConcMarkSweepGC 接着需要在代码中对需要进行垃圾收集的对象进行特殊标记,例如: private final ConcurrentMap&l…

    Java 2023年5月10日
    00
  • Spring Batch批处理框架操作指南

    Spring Batch批处理框架操作指南 简介 Spring Batch是针对于处理海量数据的批处理框架,它通过创建批处理作业(Job)来完成数据的读取、处理和写入输出的操作。本指南为您提供Spring Batch的完整操作指南。 原理 Job: 对整个批处理过程进行定义与配置。 Step: 是Job的一部分,代表一个特定的处理阶段。 ItemReader…

    Java 2023年5月26日
    00
  • SpringBoot应用程序转换成WAR文件详解

    下面是详细讲解“SpringBoot应用程序转换成WAR文件详解”的完整攻略。 背景介绍 Spring Boot 是一款简化 Spring 框架的开发过程的工具,它将我们从繁琐的配置中解放出来,让我们更专注于业务逻辑的开发上。然而,在实际的生产环境中,我们通常需要将 Spring Boot 应用程序转换成 WAR 文件来进行部署。本文将详细讲解如何将 Spr…

    Java 2023年5月19日
    00
  • JavaSpringBoot报错“NoClassDefFoundError”的原因和处理方法

    当使用Java的Spring Boot框架时,可能会遇到“NoClassDefFoundError”错误。这个错误通常是由以下原因之一引起的: 缺少依赖项:如果您的应用程序缺少依赖项,则可能会出现此错误。在这种情况下,需要确保所有依赖项都已正确添加。 类路径错误:如果类路径错误,则可能会出现此错误。在这种情况下,需要确保类路径正确。 以下两个实例: 例 1 …

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