猿问

cup利用率为什么上不去

linux中为什么cpu的利用率上不去呢。,cpu有8个核心,比如我启动了一个进程P。
通过top命令查看,当前cpu的平均利用率不到10%,但p进程的cpu利用率高达95%,
我的理解是p进程只占用了其中一个核心,明显的p进程需要更多的cpu资源,那么为
什么操作系统不分配给它更多的cpu资源呢


拉莫斯之舞
浏览 1261回答 2
2回答

holdtom

因为你的程序没有使用多线程,也就是它是顺序执行的,操作系统不能自动把串行的代码转变成并行的代码分配给cpu,做不到。这个需要你作为程序员去实现。而且并非所有的算法都能并行计算,比如说从数学的角度看,人类还没有找到一个10进制算圆周率的并行算法。或者简单来说,如果你不算出圆周率开头的位,你不能先算后面的位。不过16进制的圆周率并行算法是已经找到了的。

繁华开满天机

需要把工作并行起来,才能利用多个核心一起工作。
随时随地看视频慕课网APP
我要回答