微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

线程高CPU使用率,但处于“就绪”状态

我在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,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

检测cpufunction支持(例如sse2,fma4等)

快速cpu环形模式保护问题

如何通过现有的过程来模拟高cpu峰值

多个进程在多个fork(Linux / C)之后卡在同一个cpu

为什么Windows 64select要求保存/恢复xmm6和xmm7?

提前谢谢你的帮助!

如何修改cpucachingL1,cachingL2和cachingL3?

nanosleep高cpu使用率?

如何计算cpu使用率?

Java过程挂100%cpu

为GetLogicalProcessor@R_961_4045@ion函数调用PInvoke

这是标准的海森堡在工作,你看到的是受到观察行为的影响。 为了使Process Explorer能够为正在运行的线程创建快照,它需要自己获取处理器。 这使得它不太可能,特别是在2核心处理器上,另一个线程可能正忙于执行。 “准备就绪”意味着线程处于活动状态,但是在创建快照时却没有机会获得处理器。

状态只能在多核处理器上可靠。 Mark Russinovich使用的那种:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐