gpt4 book ai didi

java - 为什么 "while(true)"和 "Thread.sleep"导致 100% CPU 使用率?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:01 25 4
gpt4 key购买 nike

更新:我不知道为什么,但突然就没事了。现在程序的cpu占用率只有10%~17%。


我在用java做一个linux后台问题。
该问题应每 100 秒执行一次。
所以我制作了一个计时器类和一些如下代码:

while(true) {   
try {
Thread.sleep(1000 * 100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

但它仍然占满了 cpu 使用率。

这就是整个 main()。没有其他程序正在运行。

public static void main(String[] args) throws WeiboException, HttpException, IOException{
timer = new Timer(true);
timer.schedule(new Getdatatimer(), 0, 100 * 1000);

System.out.print("runnning \n");
while(true) {
try {
Thread.sleep(1000 * 100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

计时器每 100 秒准确运行一次。但问题是cpu使用率。

最佳答案

您的代码看起来不错,应该不会导致忙等待。可能是其他东西正在消耗 CPU,您可以通过使用探查器或检查 jconsole、jvisualvm 中的堆栈跟踪来确定。

关于java - 为什么 "while(true)"和 "Thread.sleep"导致 100% CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306716/

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