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日

相关文章

  • Java 正则表达式详解

    Java 正则表达式详解攻略 什么是正则表达式 正则表达式是一种用来描述字符串的特定模式的表达式,是一种通用的字符串处理方式。用于快速的匹配、查找、替换和格式化文本。 Java中正则表达式的主要类为java.util.regex,支持正则表达式的操作有两种方式:String类对正则表达式的直接支持和利用java.util.regex包提供的支持。 正则表达式…

    Java 2023年5月19日
    00
  • maven导入本地仓库jar包,报:Could not find artifact的解决

    当我们在使用Maven构建项目时,有时候会遇到Maven导入本地仓库jar包时出现“Could not find artifact”的错误,这可能是因为Maven没有将该jar包添加到本地仓库中。 以下是解决该问题的完整攻略: 1.通过命令行将jar包安装到本地仓库 首先,我们需要打开命令行工具,进入到jar包所在的文件夹。然后,使用以下命令将该jar包安装…

    Java 2023年5月20日
    00
  • Spring学习JdbcTemplate数据库事务参数

    下面就是关于“Spring学习JdbcTemplate数据库事务参数”的完整攻略: 1. JdbcTemplate概述 JdbcTemplate是Spring框架中一个非常重要的核心组件,它为开发者提供了非常方便的方式进行数据访问操作。它提供了完善的JDBC功能支持,并简化了JDBC代码的编写。JdbcTemplate底层实现了对JDBC进行封装和简化,更加…

    Java 2023年5月20日
    00
  • Java线程(Thread)四种停止方式代码实例

    Java线程(Thread)四种停止方式代码实例 在Java语言中,线程是非常常见的概念。在多线程编程过程中,需要经常使用到线程的停止操作。Java线程的停止方法有四种,分别是: 调用stop方法停止线程 使用interrupt方法打断线程 使用volatile布尔变量作为停止标志 使用线程阻塞等待退出 下面详细介绍这四种方式的代码实例。 1. 调用stop…

    Java 2023年5月18日
    00
  • Bootstrap的fileinput插件实现多文件上传的方法

    下面我来介绍一下Bootstrap的fileinput插件实现多文件上传的方法。 1. 插件介绍 Bootstrap的fileinput插件是一个强大的文件上传插件,支持多文件上传、图片预览等功能,而且使用起来也非常方便,只需要简单的配置和调用就可以了。 2. 安装插件 你可以通过多种方法来安装Bootstrap的fileinput插件,比如使用CDN、下载…

    Java 2023年6月15日
    00
  • Java中InputSteam怎么转String

    转换InputStream为String,可以使用Java中的Scanner类、BufferedReader类、ByteArrayOutputStream类、StringBuilder类等方式。 其中,Scanner类适用于转换小型InputStream,BufferedReader适用于转换大型InputStream,ByteArrayOutputStre…

    Java 2023年5月26日
    00
  • 举例讲解Java的Jackson库中ObjectMapper类的使用

    首先我们需要了解Jackson库是什么。Jackson是一个Java库,用于把 Java 对象序列化为基于文本,JSON或者XML的表现形式,并将相应的格式反序列化到 Java 对象中。它是用于处理 JSON 数据的最流行和最受欢迎的Java库之一。 ObjectMapper是Jackson中最为核心的类之一,它提供了一些序列化与反序列化的特性,以下是具体的…

    Java 2023年5月26日
    00
  • PHPWind论坛核心设置详细说明【config.php】

    PHPWind是一款基于PHP开发的论坛系统。在PHPWind中,config.php文件是非常关键的一个配置文件,它包含了论坛系统的核心设置。以下是关于PHPWind论坛核心设置详细说明【config.php】的完整攻略。 config.php文件位置 在PHPWind系统中,config.php文件位于/htdocs/config/目录下,是一个PHP文…

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