【发布时间】:2016-09-29 10:36:42
【问题描述】:
我有一个关于 CPU 使用率的理论问题。当 CPU 使用率达到 100% 时,这意味着什么?这是否意味着,我的数据太大了?或者这是否意味着我的文件太大?还是文件数量过多?或者 JVM 上的数据太多?
这是使用多线程应用程序完成的 Java I/O 操作。
【问题讨论】:
-
这取决于CPU在做什么,但你可以区分IO过多或CPU过多。
标签: java multithreading io
我有一个关于 CPU 使用率的理论问题。当 CPU 使用率达到 100% 时,这意味着什么?这是否意味着,我的数据太大了?或者这是否意味着我的文件太大?还是文件数量过多?或者 JVM 上的数据太多?
这是使用多线程应用程序完成的 Java I/O 操作。
【问题讨论】:
标签: java multithreading io
这意味着您的应用程序进行的计算量超过了您的 CPU 可以管理的量,因此您的 CPU 完全超载,与计算相比,它不会做太多 IO,因为 IO 增加了一些延迟因此将减少 CPU 的使用,例如,没有暂停的无限循环将消耗 受影响 CPU 的 100 %。
while(true);
虽然带有暂停的无限循环会消耗更少的CPU,因为我们每单位时间要做的计算更少。
while(true) {
Thread.sleep(50L);
}
【讨论】:
while(true) 不是问题的根本原因,这取决于它在循环中做了什么