您好,匿名用户

Linux/Windows在多CPU时控制CPU使用率时表现为什么不同?

0 投票

最近看了编程之美第一章讲的控制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有没有这个功能?

用户头像 提问 2015年 11月1日 @ Diana 中士 (1,236 威望)
分享到:

1个回答

0 投票
 
最佳答案

两个可能的原因:

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

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

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

用户头像 回复 2015年 11月1日 @ Fiora 中士 (1,187 威望)
提一个问题:

相关问题

0 投票
1 回复 88 阅读
0 投票
1 回复 156 阅读
0 投票
0 回复 103 阅读
0 投票
1 回复 283 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...