并行流中的第一元素确定

时间:2018-10-29 15:55:38

标签: java java-8 parallel-processing java-stream element

在并行流中使用findFirst操作时如何确定第一个元素?

编辑

  1. @nullpointer:我的提问意图与您发布的尽可能重复的内容不同(其中,元素正在起作用,因此,有很多因素在起作用)链接和您的第二个链接(问题)不讨论并行性。

  2. ALL:我承认,澄清原始问题应该提供更多信息-给定ArrayList个字符串(以一百万个单词为元素),并尝试使用{{ 1}},如何在并行(findFirst)执行时确定第一个元素(例如,查找词为“ HelloWorld”)?我提出这个问题的原因是,因为列表是有序的(在这种情况下,首先遇到的问题是使用Stream.parallelStream()返回的),甚至还考虑了并行执行?如果是这样,查找字可以在百万个字/元素中的任意位置,任意数量的实例中,并且由于列表可以分为许多并行子任务,在这种情况下,如何确定第一个元素?

1 个答案:

答案 0 :(得分:2)

并行地,我们可以轻松地并行化上游操作,但是当某些子任务产生结果时,我们就没有完成。我们仍然必须等待遇到遇到的所有子任务后才能完成。因此,findFitst(如果不是并行友好的话)。