gpt4 book ai didi

java - 在什么时候短 sleep 会增加而不是减少 CPU 利用率

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:45 24 4
gpt4 key购买 nike

我正处于一个将有 10-30 个线程的程序的设计阶段,其中每个线程将处理许多小块信息。

我可以选择每个 block hibernate 5 毫秒或根本不 hibernate 。我应该选择减少 CPU 负载的那个。

通常我会 sleep 以降低 CPU 利用率,但我担心许多 5 毫秒的 sleep 可能会由于上下文切换而导致 CPU 利用率增加而不是减少。

是否已经进行了关于在 CPU 利用率上短暂 sleep 和上下文切换之间权衡的研究?

最佳答案

sleep 是最后的选择。相反,请查看并发 API 中的工具,尤其是 Queue,它允许您将任务置于 hibernate 状态,直到它应该执行的消息到达为止。

或者看Akka这使您可以轻松构建一个系统,其中几个线程可以处理数千条消息。这里的主要缺点是你必须围绕 Akka 设计你的系统——它真的不是你可以轻易改造的东西。

如果速度是您的主要关注点,请查看无阻塞算法,例如“Single Producer/Consumer lock free Queue step by step”或LMAX Disruptor .

相关:

关于java - 在什么时候短 sleep 会增加而不是减少 CPU 利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27163066/

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