线程 - Linux/Windows在多CPU时控制CPU使用率时表现为什么不同?
迷茫
迷茫 2017-04-17 11:35:12
[Linux讨论组]

最近看了编程之美第一章讲的控制CPU使用率
我这里有2台电脑:
Windows,4核
Linux,2核,
然后我下了这么一段程序:
public class test {
public static void main(String[] args) {
while(true){

}
}
}
分别在两个机器上跑。
第一个结果:windows4核,CPU占用率是25%
第二个结果:linux2核,CPU占用率100%
我的理解是:同一时间只有一个线程运行,那么对于4核而言占用率是25%我可以理解,但是为什么在linux2核上却达到了100%,难道不该是50%吗?

另外,我看c++由函数可以绑定进程到某个CPU,JAVA有没有这个功能?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
PHP中文网

两个可能的原因:

  1. 你的双核机器跑满两个核,会不会显示 200%?
  2. 你的双核机器其实是单物理核+超线程?

参考:http://unix.stackexchange.com/a/32198

另外:指定 CPU 资源听上去应该是系统调用范畴的吧?不同操作系统可不一样哦,也许 Java 有第三方库包装了类似功能。

阿神

1.Linux:

top -d 1

然后按数字1,截个图。

2.Windows:
任务管理器->性能->截个图。
任务管理器->进程->全屏->截个图。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号