java 遍历ExecutorService
时间: 2023-11-03 14:06:14 浏览: 73
Java中的ExecutorService是一个线程池,提供了一种简单的方式来管理和执行线程。遍历ExecutorService可以通过以下步骤完成:
1.获取ExecutorService实例。
2.创建一个List<Future<?>>对象,用于存储提交给ExecutorService的任务结果。
3.使用ExecutorService.submit()方法向线程池提交任务,将返回的Future对象添加到List<Future<?>>中。
4.使用List<Future<?>>的foreach循环遍历所有的Future对象。
5.调用Future.get()方法获取任务的结果。
6.在获取结果后处理任务结果。
以下是一个示例代码片段,演示如何遍历ExecutorService:
```java
ExecutorService executorService = Executors.newFixedThreadPool(3);
List<Future<?>> futures = new ArrayList<>();
for (int i = 0; i < 10; i++) {
final int taskNumber = i;
Future<?> future = executorService.submit(() -> {
System.out.println("Task " + taskNumber + " is running.");
});
futures.add(future);
}
for (Future<?> future : futures) {
try {
future.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
executorService.shutdown();
```
在这个示例中,我们创建了一个固定大小为3的线程池,并提交了10个任务。我们使用一个List<Future<?>>来存储每个任务的结果。然后,我们使用foreach循环遍历List<Future<?>>,并调用Future.get()方法获取每个任务的结果。最后,我们关闭ExecutorService。
阅读全文