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技术站