Java 有很多方法可以实现定时任务。 下面是几种常见的方法:
- 使用
java.util.Timer
和java.util.TimerTask
类。 例如:
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("定时任务开始执行");
}
}, 0, 1000); // 这里表示每隔 1000 毫秒执行一次
}
}
- 使用
java.util.concurrent.ScheduledExecutorService
接口和java.util.concurrent.ScheduledThreadPoolExecutor
类。 例如:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("定时任务开始执行");
}
}, 0, 1, TimeUnit.SECONDS); // 这里表示每隔 1 秒执行一次
}
}
- 使用
java.util.Date
类和java.util.concurrent.ScheduledThreadPoolExecutor
类。 例如:
``` import java.util.Date; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit;
public class Main { public static void main(String[] args) { ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
long delay = 1000; // 这里表示延迟 1 秒执行
long period = 1000; // 这里表示每隔 1 秒执行一次
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("定时任务开始执行");
}
}, new Date(System.currentTimeMillis() + delay), period, TimeUnit.MILLISEC