使用ScheduledExecutorService代替Timer的案例
时间: 2023-07-11 18:27:15 浏览: 101
好的,以下是一个使用ScheduledExecutorService代替Timer的案例:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledExecutorServiceExample {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
Runnable task = () -> {
System.out.println("Hello, World!");
};
int initialDelay = 0;
int period = 1;
executor.scheduleAtFixedRate(task, initialDelay, period, TimeUnit.SECONDS);
}
}
```
在这个例子中,我们使用了ScheduledExecutorService来执行一个定时任务。我们首先创建了一个ScheduledExecutorService并指定线程池的大小为1,然后定义了一个Runnable任务,该任务只是简单地输出"Hello, World!"。接下来,我们使用scheduleAtFixedRate方法来执行定时任务,该方法的第一个参数是要执行的任务,第二个参数是初始延迟时间(单位为秒),第三个参数是执行任务的时间间隔(单位为秒)。在这个例子中,我们将初始延迟时间设置为0,将执行间隔设置为1秒。
使用ScheduledExecutorService代替Timer的好处在于,它能够更好地处理异常,且可以使用线程池来执行任务,提高了效率和可靠性。
阅读全文