首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >usleep睡眠忙着等待

usleep睡眠忙着等待
EN

Stack Overflow用户
提问于 2012-03-12 21:32:27
回答 2查看 1.4K关注 0票数 2

开始体验一些实时线程。我刚刚通过调用usleep(TIME)让我的线程进入睡眠状态。这将保证线程至少休眠一段时间。我现在用TIME= 10ms进行测量,得到了一个期望值为µ=10,1ms的高斯函数,第二次测量的时间= 1us:我在4us处得到了一个大峰值。

那么为什么第二个测量值不是高斯呢?我的第一个想法是,线程并不是真正的休眠,而是使一个忙碌的等待。正如here (old beahavior)所说的,没有忙碌的等待。如何解释这两条曲线呢?

EN

回答 2

Stack Overflow用户

发布于 2012-03-12 21:36:36

因为定时函数的分辨率。你自己说的,它保证你至少能睡上一段时间。为什么它不能保证睡眠的时间是准确的,因为它很可能以4微秒的间隔运行。

man page也提到了这种现象:

休眠可能会因任何系统活动或根据系统计时器的粒度处理呼叫或所花费的时间而稍微延长。

票数 4
EN

Stack Overflow用户

发布于 2012-03-12 21:36:50

这可以用函数调用的开销和等待较小间隔的不同方法来解释。您可以考虑一个常量,即无法避免的延迟,但对于更大的等待,可以减去。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9667988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档