为了账号安全,请及时绑定邮箱和手机立即绑定

流()和并行流()。为什么 API 开发人员采用两种方法?

流()和并行流()。为什么 API 开发人员采用两种方法?

动漫人物 2023-06-08 20:48:59
我最近仔细研究了 Java 8 Stream API 并注意到有两种方法;流()和并行流()。我了解每种方法的用途,但无法理解需要两种方法才能达到目的。通过公开两种方法,Java 语言设计者强制在编译时选择并行化(或不并行化)。显然,使用参数/开关可以帮助将选择推迟到运行时使用一些运行时参数/配置和 DI,这在许多情况下都是可取的。然而,设计师一定有令人信服的理由不走那条路。那些原因是什么?这将有助于了解流是如何在幕后工作的。
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

您通常不想在运行时选择:有些问题应该并行解决,有些则不应该。在 99.99% 的情况下,他们不应该这样做。

如果您遇到过这种情况,Java 有 if 语句或三元运算符:

Stream<Foo> stream = shouldBeParallel? collection.parallelStream() : collection.stream();

我不想不得不写和读collection.stream(false)(那是什么false意思?),或者collection.stream(StreamMode.SEQUENTIAL)每次我想要一个流。


查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信