ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(15);线程怎么使用
时间: 2025-01-02 16:36:41 浏览: 64
### 使用 Java `ScheduledExecutorService` 调度和管理线程
#### 创建并配置 ScheduledExecutorService 实例
`ScheduledExecutorService` 是 `java.util.concurrent` 包下提供的接口,用于管理和调度具有固定延迟或固定速率的任务。该服务允许开发者提交任务,并指定首次执行的时间间隔以及后续重复执行的时间间隔。
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class SchedulerExample {
private static final int CORE_POOL_SIZE = 2; // 设置核心线程数
public static void main(String[] args) throws InterruptedException {
// 创建一个拥有两个核心线程的 ScheduledExecutorService 实例
try (ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(CORE_POOL_SIZE)) {
Runnable task = () -> System.out.println("Executing Task at " + System.currentTimeMillis());
// 安排一次性任务,在初始延时后仅运行一次
scheduler.schedule(task, 5, TimeUnit.SECONDS);
// 安排周期性任务,初次启动前等待1秒,之后每隔3秒执行一次
scheduler.scheduleAtFixedRate(task, 1, 3, TimeUnit.SECONDS);
// 让主线程休眠一段时间以便观察调度效果
Thread.sleep(20_000);
// 关闭调度器
scheduler.shutdown();
}
}
}
```
此代码片段展示了如何创建一个带有两个工作线程的核心池大小的 `ScheduledExecutorService` 实例[^2]。通过调用 `schedule()` 方法可以安排单次执行的任务;而 `scheduleAtFixedRate()` 则用来设置按照固定频率反复执行的任务。最后记得关闭调度器以释放资源。
阅读全文
相关推荐


















