executorservice判断现场池执行完毕
时间: 2024-09-18 07:04:17 浏览: 32
在Java中,`ExecutorService`是一个用于管理并发任务的服务,它包含了线程池的概念。如果你想检查线程池是否已完成所有提交的任务,你可以使用`awaitTermination()`方法。
`ExecutorService.awaitTermination(long timeout, TimeUnit unit)`方法接受两个参数:一个是超时时间(单位为纳秒、毫秒、秒等),另一个是时间单位。这个方法会阻塞主线程,直到线程池中的所有任务都完成执行,或者是达到指定的超时时间。如果线程池因为中断而停止,该方法将返回`false`。
示例代码如下:
```java
try {
if (executorService.isTerminated()) {
System.out.println("Executor Service is already terminated");
} else {
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); // 等待无限期直到所有任务完成
System.out.println("Executor Service has completed all tasks");
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
System.out.println("Executor Service was interrupted");
}
```
阅读全文