java计时器
时间: 2023-10-11 22:27:15 浏览: 64
可以使用Java内置的Timer类来实现计时器功能。以下是一个简单的示例:
```java
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
int count = 0;
@Override
public void run() {
count++;
System.out.println("计时器已经运行了 " + count + " 秒。");
}
};
timer.schedule(task, 0, 1000); // 每隔一秒执行一次任务
}
}
```
在上述示例中,使用Timer类创建一个计时器,并使用TimerTask类定义一个任务,该任务每隔一秒输出一次计时器已经运行的秒数。通过调用Timer类的schedule方法来启动计时器并指定任务的执行间隔。
相关问题
java计时器_Java 计时器
Java中有两种常用的计时器:Timer和ScheduledExecutorService。
Timer是一个简单的计时器,可以安排一个任务在指定的时间间隔后执行,也可以安排一个任务在指定的时间点执行。但是,Timer存在一些问题,如任务执行时间长会影响后续任务的执行时间,任务抛出未捕获异常会导致整个计时器停止工作等。
ScheduledExecutorService是Java 5引入的计时器,它解决了Timer存在的一些问题。ScheduledExecutorService可以安排一个任务在指定的时间间隔后执行,也可以安排一个任务在指定的时间点执行。与Timer不同的是,ScheduledExecutorService采用线程池来执行任务,任务执行时间长不会影响后续任务的执行时间,任务抛出未捕获异常不会导致整个计时器停止工作。
下面是一个使用ScheduledExecutorService实现的计时器示例:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TimerDemo {
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
System.out.println("Hello, world!");
}
}, 0, 1, TimeUnit.SECONDS);
}
}
```
该示例创建了一个ScheduledExecutorService实例,并安排一个任务每隔1秒钟输出一次"Hello, world!"。scheduleAtFixedRate方法的第一个参数是需要执行的任务,第二个参数是初始延迟时间,第三个参数是任务执行间隔时间,第四个参数是时间单位。这里使用了Executors工厂类创建了一个线程池,线程池中只有一个线程,因为只需要执行一个任务。
java计时器倒计时
要实现Java倒计时器,可以利用for循环和Thread.sleep()方法来控制输出的时间间隔。以下是一个示例代码:
```java
for (int i = 10; i > 0; i--) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("倒计时结束");
```
该代码会从10开始递减,每秒钟输出一个数字,然后在倒计时结束后输出"倒计时结束"。