线程 CPU 使用率高,但处于"Ready"状态



我在Windows中使用Process Explorer来检查进程。

当我查看此进程属性中的线程选项卡时,我看到 1 个线程具有高 CPU 使用率(双核服务器的总 CPU 为 ~30-49%,因此如果您将该单个线程等同于单个 CPU 乘以间隔),它会使用大量 CPU 时间)。

现在,如果我坐下来观察这个线程,它会花费 98% 的时间处于"就绪"状态,而其他时间则处于"正在运行"状态。为了更好地用区间来说明这一点:

t=0, CPU = 35, State = Ready 
t=1, CPU = 49, State = Ready 
t=2, CPU = 50, State = Ready 
t=3, CPU = 39, State = Ready 
t=4, CPU = 32, State = Ready 
t=5, CPU = 35, State = Ready 
t=6, CPU = 37, State = Running
t=7, CPU = 40, State = Ready 
t=8, CPU = 42, State = Ready 
t=9, CPU = 43, State = Ready 

当处于就绪状态时,此线程如何使用这么多 CPU?

提前感谢您的帮助!

这是标准的海森堡在工作,你所看到的会受到观察它的行为的影响。 为了使进程资源管理器能够创建正在运行的线程的快照,它需要自己获取处理器。 这使得另一个线程忙于执行的可能性较小,尤其是在 2 核处理器上。 "就绪"意味着线程处于活动状态,只是在创建快照时没有机会获取处理器。

状态只能在众核处理器上获得可靠。 马克·鲁西诺维奇使用的那种:)

相关内容

最新更新