Linux/Windows在多CPU时控制CPU使用率时表现为什么不同?
最近看了编程之美第一章讲的控制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有没有这个功能?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
两个可能的原因:
参考:http://unix.stackexchange.com/a/32198
另外:指定 CPU 资源听上去应该是系统调用范畴的吧?不同操作系统可不一样哦,也许 Java 有第三方库包装了类似功能。
1.Linux:
然后按数字1,截个图。
2.Windows:
任务管理器->性能->截个图。
任务管理器->进程->全屏->截个图。