gpt4 book ai didi

java - Java 中的 parallelStream 在哪些应用领域有用?

转载 作者:行者123 更新时间:2023-12-01 10:26:47 24 4
gpt4 key购买 nike

我试图确定一类可以从使用 Java 8 中引入的 parallelStream API 中受益的 Java 应用程序。
我知道其他 SO 帖子中描述的 API 的许多警告:

  • 共享 fork/join 池,具有非平凡的启动时间,以及池中争用的一些潜在问题
  • 以某种方式不受控制地使用系统资源,使得在服务器(已经具有多任务策略)上使用此类代码实际上可能是一个坏主意
  • ...还有其他批评主要与性能有关

  • 尽管如此,如果 Stream API 已经被使用,API 可以利用现代多核机器的代码不是很具有侵入性,因此没有麻烦的多线程开发成本低。因此,我仍然认为它在某些情况下很有用。
    我认为应用程序上下文因此必须是这样的:
  • 我的申请目前是连续的
  • 就挂钟时间而言,存在响应时间问题,例如用户点击了一个 GUI 按钮,正在等待回复
  • 应用程序运行在客户端机器上,大多数时候我们可以期望有一些可用的 CPU 内核,而不是在资源已经争用的服务器上
  • 我的开发团队没有人力/技能来开发他们自己的任务分配/线程机制,所以他们不会去追求并行性,除非他们可以使用这个 API 轻松做到

  • 我在github上搜索过,但很难找到不是练习或教科书示例的parallelStream用法的相关示例(我欢迎链接到API的中型+项目中的一些用法)。
    那么,Java 语言开发人员使用此 API 的目标是哪种应用程序?
    您是否同意上述对 API 有用的应用程序上下文的要求?

    最佳答案

    这看起来像是对地点和原因的案例的一个很好的解释。 https://computing.llnl.gov/tutorials/parallel_comp/#WhyUse
    我个人认为在以用户为中心的 Web 应用程序中没有有趣的案例。
    fork/join 框架是一个非常酷的低级 API。许多其他更高级别的框架在幕后非常成功地使用它。我用它来生成测试数据。缓存引导。数据处理等...
    在许多情况下,您会在其他情况下获得非常好的性能提升,这只是不必要的开销。

    关于java - Java 中的 parallelStream 在哪些应用领域有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62716832/

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