gpt4 book ai didi

java - 如何使用java 8集合并行流处理设置负载平衡?

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

我有一个包含很多元素的集合(可以是 100 000 个或更多),处理每个元素的时间从 1 秒到 1 分钟不等。 注意 当元素处理花费 1 秒时,单个 CPU 核心的负载低于 100%(可能是 5 或 10%)。

所以我需要以下负载平衡:

  1. 创建比 CPU 核心更多的线程,例如 cpuCoreNumbers*20
  2. 使用 myCollection.parallelStream().forEach() 启动集合处理
  3. 监控 CPU 负载,当 CPU 负载低于 100% 时开始下一个元素处理,当 CPU 负载为 100% 时停止添加下一个元素并等到负载低于 80%(例如)。

主要思想是创建并使用比 CPU 核心更多的线程来进行“精简集合处理”,并在“重”元素开始处理时减少线程。

是否可以在Java 8并行流处理过程中设置负载平衡?

最佳答案

common默认情况下,fork join 池将用于并行流处理。这可能有与可用处理器数量匹配的线程数量。

监视和解释 CPU 利用率是一项重要的任务。超线程、省电功能、涡轮增压功能等使这变得复杂。

关于java - 如何使用java 8集合并行流处理设置负载平衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28513601/

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