用java写一个关于CompletableFuture多任务并行执行的方法
时间: 2023-05-24 07:02:53 浏览: 334
SpringBoot 多任务并行+线程池处理的实现
A:
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
public class CompletableFutureDemo {
public static void executeInParallel(List<Runnable> tasks) {
List<CompletableFuture<Void>> futures = tasks.stream()
.map(r -> CompletableFuture.runAsync(r))
.collect(Collectors.toList());
CompletableFuture<Void> allFutures = CompletableFuture.allOf(
futures.toArray(new CompletableFuture[futures.size()]));
try {
// Wait for all futures to complete
allFutures.get();
} catch (Exception ex) {
// Handle exception
}
}
}
这是一个简单的方法,可以在多个任务上并行执行。它使用CompletableFuture类,将每个任务封装在一个CompletableFuture对象中,并使用allOf()方法等待它们全部执行完毕。其中,tasks参数为任务列表,每个任务都是一个Runnable对象。可以在任务中执行各种操作,例如网络调用、计算等。
阅读全文