Java 中实现倒计时有两种方法:使用 ScheduledExecutorService 创建一个可重复执行的任务,直到时间到。使用 Timer 和 TimerTask 创建一个可重复执行的任务,直到时间到。

Java 中实现倒计时的两种方法
在 Java 中,可以通过以下两种方法实现倒计时:
1. 利用 ScheduledExecutorService
ScheduledExecutorService 是 Java 中一种用于安排延迟或定期任务的工具。我们可以使用它来创建一个可重复执行的任务,直到时间到。
立即学习“Java免费学习笔记(深入)”;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class CountdownScheduledExecutorService {
public static void main(String[] args) {
// 创建一个可重复执行的任务
Runnable task = () -> System.out.println("倒计时: " + secondsLeft);
// 创建一个 ScheduledExecutorService,以 1 秒的延迟每秒执行任务
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
executorService.scheduleAtFixedRate(task, 1, 1, TimeUnit.SECONDS);
// 设置倒计时时间(秒)
int secondsLeft = 10;
// 等待倒计时结束
while (secondsLeft > 0) {
secondsLeft--;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 停止任务
executorService.shutdown();
}
}2. 利用 Timer 和 TimerTask
Timer 和 TimerTask 是 Java 中用于安排任务的 legacy 类。与 ScheduledExecutorService 类似,我们可以使用它们来创建一个可重复执行的任务,直到时间到。
import java.util.Timer;
import java.util.TimerTask;
public class CountdownTimer {
public static void main(String[] args) {
// 创建一个可重复执行的任务
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("倒计时: " + secondsLeft);
}
};
// 创建一个 Timer,以 1 秒的延迟每秒执行任务
Timer timer = new Timer();
timer.schedule(task, 1000, 1000);
// 设置倒计时时间(秒)
int secondsLeft = 10;
// 等待倒计时结束
while (secondsLeft > 0) {
secondsLeft--;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 取消任务
task.cancel();
// 停止 Timer
timer.cancel();
}
}











