Java定时器(Timer)是Java提供的一种机制,用来执行定时任务。它允许你在一个特定的时间间隔内反复地,或者仅仅是一次性地,执行某个代码段。在本文中,我们将详细讲解Java定时器的使用,包括创建Timer对象、添加任务、设定任务执行间隔等。
创建Timer对象
首先,我们需要创建一个定时器Timer对象。可以使用如下代码来创建:
Timer timer = new Timer();
这将创建一个默认的Timer对象,采用系统默认的构造方法。同时,我们也可以使用下面的方式,设置定时器的相关参数:
Timer timer = new Timer("timer-name", true);
其中,“timer-name”是指定的定时器的名称,可以为空,true表示定时器在结束后会阻塞当前正在执行的线程。
添加任务
定时任务是指定的代码块,需要在一定时间段内执行的任务。我们可以通过以下代码段来指定一个执行的任务:
TimerTask task = new TimerTask() {
@Override
public void run() {
//需要执行的代码
}
};
同时,我们也可以使用Lambda表达式来指定执行的任务:
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("Task executed at: " + new Date());
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 1000);
这将在程序启动后每秒执行一次任务,并打印出当前的时间。
设定任务执行间隔
在创建和指定了任务后,我们可以使用scheduleAtFixedRate()方法来设定定时任务的开始时间和执行间隔。
timer.scheduleAtFixedRate(task, delay, period);
其中,task是定时任务代码块,delay是任务开始执行的延迟时间(单位毫秒),period是任务的执行间隔时间(单位毫秒)。
示例
下面的示例演示了如何创建定时器和定时任务,每隔10秒钟执行一次任务,共执行6次:
import java.util.*;
public class TimerDemo {
public static void main(String[] args) {
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("Task executed at: " + new Date());
}
};
Timer timer = new Timer();
long delay = 10000L;
long period = 10000L;
timer.scheduleAtFixedRate(task, delay, period);
try {
//等待6次定时任务执行结束
Thread.sleep(period * 6);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
//结束定时器
timer.cancel();
}
}
}
执行结果如下:
Task executed at: Thu Sep 02 09:56:47 CST 2021
Task executed at: Thu Sep 02 09:56:57 CST 2021
Task executed at: Thu Sep 02 09:57:07 CST 2021
Task executed at: Thu Sep 02 09:57:17 CST 2021
Task executed at: Thu Sep 02 09:57:27 CST 2021
Task executed at: Thu Sep 02 09:57:37 CST 2021
以上就是Java定时器 Timer 的简要介绍,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java定时器Timer简述 - Python技术站