ScheduledExecutorService 代替 Timer 的示例
时间: 2023-11-16 10:57:27 浏览: 124
使用 ScheduledExecutorService 代替 Timer 可以提高任务的执行效率和可靠性。下面是一个使用 ScheduledExecutorService 的示例代码:
```
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
long start = System.nanoTime();
// 任务1:每隔1秒执行一次
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.format("任务一执行的时间为第:%dms%n", (System.nanoTime() - start) / 1000000);
}
}, 0, 1, TimeUnit.SECONDS);
// 任务2:每隔3秒执行一次
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.format("任务二执行的时间为第:%dms%n", (System.nanoTime() - start) / 1000000);
}
}, 0, 3, TimeUnit.SECONDS);
}
```
在这个示例中,我们使用了 ScheduledExecutorService 的 scheduleAtFixedRate 方法来执行定时任务。该方法可以指定任务的初始延迟时间和执行周期,并且可以指定线程池的大小来提高任务的并发性能。相比之下,Timer 的执行效率和可靠性都不如 ScheduledExecutorService。
阅读全文