ScheduledThreadPoolExecutor并发执行
时间: 2024-01-05 07:20:16 浏览: 130
ScheduledThreadPoolExecutor是一个用于并发执行任务的线程池。它继承自ThreadPoolExecutor,并在其基础上添加了定时任务的功能。ScheduledThreadPoolExecutor可以在指定的延迟时间之后运行任务,或者定期执行任务。
下面是一个演示ScheduledThreadPoolExecutor并发执行的例子:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledThreadPoolExecutorExample {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);
// 创建一个任务并延迟1秒后执行
Runnable task1 = () -> {
System.out.println("Task 1 executed");
};
executor.schedule(task1, 1, TimeUnit.SECONDS);
// 创建一个任务并延迟2秒后执行,然后每隔3秒执行一次
Runnable task2 = () -> {
System.out.println("Task 2 executed");
};
executor.scheduleAtFixedRate(task2, 2, 3, TimeUnit.SECONDS);
// 关闭线程池
executor.shutdown();
}
}
```
上述代码创建了一个ScheduledExecutorService对象,并使用Executors工厂方法创建了一个ScheduledThreadPoolExecutor线程池。然后,我们创建了两个任务,并使用schedule和scheduleAtFixedRate方法分别安排它们的执行。最后,我们调用shutdown方法关闭线程池。
这样,ScheduledThreadPoolExecutor就可以并发执行任务,并根据指定的延迟时间或固定的时间间隔来执行任务。
阅读全文