gpt4 book ai didi

java - Java 8 之前的 Parallel ForEach 可行吗?

转载 作者:行者123 更新时间:2023-12-02 03:58:55 25 4
gpt4 key购买 nike

我们都知道流允许我们并行执行 foreach,例如(实际代码并不重要):

Arrays.stream(ints).parallel()...

C# 有类似的形式:

ints.AsParallel().Select(int=> ....

但是!它还具有以下语法,可能会或可能不会比上面的更旧:

Parallel.ForEach(ints, anInt => {});

这让我想到了我的问题 - 在 Java 8 之前,Java 是否有一种方法可以相对简单地执行并行 foreach?谷歌搜索似乎没有结果,我也尝试了几篇文章here , here ,在 Baeldung 等上,并且没有看到更旧的方法可以做到这一点。

有吗?

最佳答案

从 Java7 开始,即 Java8 之前,您可以使用 Fork/Join 框架进行并行处理。但是您必须自己拆分数据源,并将代码包装在 ForkJoinTask 子类中,通常使用其更专业的类型之一,RecursiveTask(它可以返回结果)或RecursiveAction。在您的情况下,由于它没有返回值,您必须将代码包装在 RecursiveAction 中,并将所有子任务提交到公共(public) Fork/Join 池中。

关于java - Java 8 之前的 Parallel ForEach 可行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com