在Java中如何实现较为精确的定时器

2025-03-04 06:04:30
推荐回答(3个)
回答1:

大部分人在遇到需要使用定时任务的时候首先会想到Timer类,
不过在JDK5.0之后就不建议使用这个Timer了,因为它有很多的缺陷。
在新的java.util.concurrent包中的ScheduledExecutorService可以替代这个Timer:
使用方法举例:

Java代码
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable() {
public void run() {
try{
throw new RuntimeException();
}catch (Exception e){
System.out.println("RuntimeException catched");
}
}
}, 1000, 5000, TimeUnit.MILLISECONDS);

回答2:

1. 可以使用Java中的Timer类,里面的schedule函数,可以定时执行,也可以循环执行

回答3:

集成spring 的 定时器

定时器的两种实现方式:
1.继承 java.util.TimerTask
2.继承 org.springframework.scheduling.quartz.QuartzJobBean