Man*_*iek 158 java linux windows multithreading cpu-usage
我在java中创建了一个简单的程序:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Run Code Online (Sandbox Code Playgroud)
如果我在Linux机器上运行它,它会显示100%的CPU使用率,但不会导致操作系统显得很慢.但是,如果我在Windows上运行完全相同的代码,它只显示大约20%的CPU使用率.
我在Windows上使用Oracle JRE,在Linux上使用OpenJDK 6.
我想知道Windows的调度程序是否随机抢占线程而Linux是不是?
tha*_*guy 387
默认情况下,top
Linux在所谓的IRIX模式下运行,而Windows任务管理器则不运行.假设您有4个核心:
启用IRIX模式后,1个完全利用的核心为100%,4个核心为400%.
关闭IRIX模式后,1个完全利用的核心为25%,4个核心为100%.
这意味着默认情况下,top
在Linux上将显示无限循环为~100%,Windows将显示为~25%,这意味着完全相同的事情.
您可以在top
使用Shift+ 运行时切换IRIX模式i.这将使数字匹配.