ExecutorService executorService = Executors.newFixedThreadPool(5); Future<Integer> future1 = executorService.submit 执行20个任务,要并行执行
时间: 2024-03-23 09:34:49 浏览: 180
ExecutorService的execute和submit方法
ExecutorService是Java中用于管理线程池的接口,可以用来执行多个任务并行执行。通过调用Executors类的静态方法newFixedThreadPool(5),可以创建一个固定大小为5的线程池。
下面是执行20个任务并行执行的代码示例:
```java
ExecutorService executorService = Executors.newFixedThreadPool(5);
List<Future<Integer>> futures = new ArrayList<>();
for (int i = 0; i < 20; i++) {
Future<Integer> future = executorService.submit(new Callable<Integer>() {
@Override
public Integer call() throws Exception {
// 执行具体的任务逻辑,返回结果
return yourTaskLogic();
}
});
futures.add(future);
}
// 等待所有任务执行完成
for (Future<Integer> future : futures) {
try {
Integer result = future.get();
// 处理任务执行结果
handleResult(result);
} catch (InterruptedException | ExecutionException e) {
// 处理异常情况
handleException(e);
}
}
// 关闭线程池
executorService.shutdown();
```
在上述代码中,我们使用了一个List来保存每个任务的Future对象,通过调用submit方法提交任务给线程池执行,并将返回的Future对象添加到List中。然后,通过遍历List中的每个Future对象,可以使用get方法获取任务的执行结果,并进行相应的处理。最后,调用shutdown方法关闭线程池。
阅读全文