【发布时间】:2018-05-16 05:54:42
【问题描述】:
我有两套
phraseSet 包含“埃菲尔铁塔”、“东京铁塔”
wordSet 包含诸如“埃菲尔”、“塔”之类的词
如何使用 Java 8 并行流来处理如下逻辑:
1. 对于phraseSet 中的每个项目,对其进行标记,查看wordSet 中是否存在所有标记,如果存在,则将该项目添加到名为resultSet 的新集合中。
在此示例中,resultSet 将包含“埃菲尔铁塔”
如果我使用传统的 for 循环很容易做到,但在尝试使用并行流时我很困惑,我希望它也更快,因为它是并行处理的。
【问题讨论】:
-
并行处理并不总是意味着更快。
-
在这种情况下应该更快吧,只是好奇在哪种情况下它更慢?
-
创建并行处理和合并结果会产生开销。只有当输入集足够大(数千,如果不是数百万)和/或每个单个元素处理需要足够长的时间(秒,如果不是几分钟)时,您才会开始看到性能优势。
标签: parallel-processing java-8 java-stream