java实现定时器(附完整源码)
时间: 2023-07-18 16:34:26 浏览: 108
java定时器的实现
5星 · 资源好评率100%
以下是Java中使用Timer和TimerTask类实现定时器的完整源码:
```java
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer {
private Timer timer;
public MyTimer() {
timer = new Timer();
}
// 开始计时
public void start(long delay, long period, TimerTask task) {
timer.schedule(task, delay, period);
}
// 停止计时
public void stop() {
timer.cancel();
}
}
```
使用Timer类来实现定时器,start()方法接收三个参数:delay表示延时多长时间开始执行,period表示执行周期,task表示要执行的任务。使用TimerTask类来实现具体的任务,继承TimerTask并重写其中的run()方法即可。stop()方法用于停止计时器,使用timer.cancel()方法来取消计时器。使用示例如下:
```java
public class MyTask extends TimerTask {
private int count = 0;
@Override
public void run() {
System.out.println("执行任务,次数:" + (++count));
}
}
public class TestTimer {
public static void main(String[] args) {
MyTask task = new MyTask();
MyTimer timer = new MyTimer();
timer.start(1000, 2000, task); // 延时1s后开始执行,每2s执行一次
try {
Thread.sleep(10000); // 等待10s后停止计时器
} catch (InterruptedException e) {
e.printStackTrace();
}
timer.stop(); // 停止计时器
}
}
```
在MyTask类中实现具体的任务,使用MyTimer类来启动计时器并执行任务,使用Thread.sleep()方法让主线程等待10s后停止计时器。注意:Timer是单线程的,如果执行任务的时间超过了执行周期,会影响后续任务的执行,可以考虑使用ScheduledExecutorService类来实现更加灵活的定时器。
阅读全文