写一段ScheduledExecutorService执行多个不同任务的java案例
时间: 2023-07-25 07:24:24 浏览: 92
下面是一个使用`ScheduledExecutorService`执行多个不同任务的Java案例:
```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(3);
// 定时任务1:每隔2秒钟输出一次当前时间
executor.scheduleAtFixedRate(() -> {
System.out.println("Current time: " + System.currentTimeMillis());
}, 0, 2, TimeUnit.SECONDS);
// 定时任务2:每隔3秒钟输出一次 "Hello, World!"
executor.scheduleAtFixedRate(() -> {
System.out.println("Hello, World!");
}, 0, 3, TimeUnit.SECONDS);
// 定时任务3:每隔5秒钟输出一次 "Goodbye, World!"
executor.scheduleAtFixedRate(() -> {
System.out.println("Goodbye, World!");
}, 0, 5, TimeUnit.SECONDS);
}
}
```
在上述代码中,我们创建了一个`ScheduledExecutorService`对象`executor`,并使用`Executors.newScheduledThreadPool(3)`方法创建了一个线程池,该线程池最多可以同时运行3个线程。
然后,我们定义了三个不同的定时任务,分别是:
- 每隔2秒钟输出一次当前时间
- 每隔3秒钟输出一次 "Hello, World!"
- 每隔5秒钟输出一次 "Goodbye, World!"
使用`executor.scheduleAtFixedRate()`方法将这些定时任务添加到线程池中,并指定了每个任务的执行间隔(单位为秒)。
最后,我们可以看到三个定时任务会在不同的时间间隔内执行,且可以同时运行多个任务。
阅读全文