查看 ExecutorService 运行 的大小
时间: 2023-11-03 11:57:16 浏览: 88
要查看 ExecutorService 当前正在运行的任务数量,可以使用 `java.util.concurrent.ThreadPoolExecutor` 类中的 `getActiveCount()` 方法。`ThreadPoolExecutor` 是 `ExecutorService` 接口的默认实现类之一。
下面是一个示例代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ExecutorServiceExample {
public static void main(String[] args) {
// 创建一个固定大小为 5 的线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交任务给线程池
for (int i = 0; i < 10; i++) {
executor.submit(() -> {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
});
}
// 输出正在运行的任务数量
int activeCount = ((ThreadPoolExecutor) executor).getActiveCount();
System.out.println("正在运行的任务数量: " + activeCount);
// 关闭线程池
executor.shutdown();
}
}
```
上面的示例中,我们创建了一个固定大小为 5 的线程池,并提交了 10 个任务给线程池。然后,我们使用强制类型转换将 `executor` 转换为 `ThreadPoolExecutor`,并使用 `getActiveCount()` 方法获取正在运行的任务数量。最后,我们调用 `shutdown()` 方法关闭线程池。请注意,`shutdown()` 方法是优雅地关闭线程池,等待所有任务完成后再终止。
阅读全文