ExecutorService executorService = Executors.newFixedThreadPool(7) 并行执行 并取出并行执行的结果
时间: 2024-03-23 07:34:48 浏览: 175
Executor,Executors,ExecutorService比较.docx
ExecutorService是Java中用于管理和执行线程任务的接口。通过ExecutorService,可以创建一个线程池,并且可以方便地提交任务给线程池执行。
在你提供的代码中,`executorService = Executors.newFixedThreadPool(7)`创建了一个固定大小为7的线程池。这意味着线程池中最多可以同时执行7个任务。
要并行执行任务并获取结果,可以使用`submit()`方法将任务提交给线程池执行,并返回一个`Future`对象。`Future`对象可以用来获取任务的执行结果。
下面是一个示例代码,展示如何使用ExecutorService并行执行任务并获取结果:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
public class ParallelExecutionExample {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executorService = Executors.newFixedThreadPool(7);
List<Callable<Integer>> tasks = new ArrayList<>();
tasks.add(() -> 1);
tasks.add(() -> 2);
tasks.add(() -> 3);
tasks.add(() -> 4);
tasks.add(() -> 5);
tasks.add(() -> 6);
tasks.add(() -> 7);
List<Future<Integer>> results = executorService.invokeAll(tasks);
for (Future<Integer> result : results) {
System.out.println(result.get());
}
executorService.shutdown();
}
}
```
在上面的示例中,我们创建了一个包含7个任务的任务列表。每个任务都是一个`Callable`对象,返回一个整数。然后,我们使用`invokeAll()`方法将任务列表提交给线程池执行,并返回一个包含每个任务执行结果的`Future`对象列表。最后,我们遍历`Future`对象列表,并使用`get()`方法获取每个任务的执行结果并打印出来。
阅读全文