并行for each或并行循环的替代方法是使用并行流(Parallel Streams)或使用线程池来处理并行任务。
使用并行流:
List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
numbers.parallelStream()
.forEach(number -> {
// 并行处理每个元素
// 可以在这里执行具体的操作
System.out.println(number);
});
使用线程池:
ExecutorService executorService = Executors.newFixedThreadPool(10);
List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
for (Integer number : numbers) {
executorService.execute(() -> {
// 在线程池中并行处理每个元素
// 可以在这里执行具体的操作
System.out.println(number);
});
}
executorService.shutdown();
这些方法可以同时处理多个元素,以提高处理速度。注意,使用并行流或线程池时,要确保操作是线程安全的,避免并发问题。
上一篇:并行分组最小化作业调度
下一篇:并行foreach的奇怪行为