gpt4 book ai didi

c++ - GetThreadtimes 给出奇怪的结果

转载 作者:可可西里 更新时间:2023-11-01 11:03:05 27 4
gpt4 key购买 nike


我正在使用 GetThreadTimes 每 5 微秒(或多或少)监视一个线程
该线程“ sleep ”持续 1 分钟,但由于某种原因,有时我从 GetThreadTimes 获得的“用户时间”发生变化,即使该线程仍处于 sleep 模式。< br/>内核时间始终为 0。

有人知道为什么会这样吗?
谢谢:)

最佳答案

5 微秒?!

GetThreadTimes() 测量线程在 sleep 、用户/内核模式下花费的量子数。我在 Win32 上观察到 10-15 毫秒的典型调度程序量程。在一个量程以下,您会发现 GetThreadTimes() 报告的时间没有改变——它基本上只是将经过的量程(在每个状态中)的(整数)数乘以一个量程的持续时间。

低于 10-15 毫秒,您真的不能期望 GetThreadTimes() 返回的任何值都是准确的。 非常,一次只能看到更新的三个测量值之一;正如您所讨论的那样。

在您讨论的规模上,Linux 和 Win32 都有古怪的线程运行时报告行为。我发现唯一可以真正将计划执行时间测量到 5 微秒的操作系统是 Mac OS X 和 VxWorks - QNX 可能也有这种能力。

关于c++ - GetThreadtimes 给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com