gpt4 book ai didi

java - 有没有办法在 JVM 或 Dalvik 的运行时将 CPU 使用率限制为一定百分比?

转载 作者:行者123 更新时间:2023-11-29 20:37:01 25 4
gpt4 key购买 nike

我想问的是,在运行时是否有办法限制 JVM 或 Dalvik 中线程可访问的 CPU 百分比?参见示例:

private void functionRunningInsideThread()
{
// Do something

// Lower access to CPU cycles

// Do something else (with access to lower CPU cycles)

// Remove CPU restrictions

return;
}

最佳答案

简短的回答:不,据我所知,没有办法可靠地做到这一点。

更长的答案:这里(至少)有两个问题:

  1. 在传统的 JVM 中,一个线程暂停另一个线程的执行没有安全的方法,除非第二个线程正在合作;即它会定期检查是否应该暂停。

  2. 很难监控线程使用的 CPU 时间百分比。理论上,您可以使用 ThreadMXBean API 获取线程的总 CPU 使用率。然而:

    • 数量可能不可用,并且
    • 即使是这样,从一个线程的总 CPU 使用率到给定时间段内的使用百分比也不是那么简单。

但是,如果您愿意粗略一点,您可以让线程使用 ThreadMXBean.getCurrentThreadCPUTime 定期检查自己的 CPU 使用率,并与使用 测量的运行时间进行比较>System.getTimeMillis。如果线程发现它使用了过多的 CPU,它可以简单地调用 Thread.sleep()

另见:

关于java - 有没有办法在 JVM 或 Dalvik 的运行时将 CPU 使用率限制为一定百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367945/

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