概述我有一个程序,生成数据包发送到接收器.我需要一种有效的方法,在每个数据包的发送之间引入一个小延迟,以免超出接收器.我试过usleep()和nanosleep(),但它们似乎太慢了.我已经实现了一个繁忙的等待循环并取得了更大的成功,但我知道这不是最有效的方法.我对任何人尝试做我正在做的事情感兴趣.其他人是否发现usleep()和nanosleep()能够很好地适用于此类应用? 谢谢, Danny L 我有一个程序,生成数据包发送到接收器.我需要一种有效的方法,在每个数据包的发送之间引入一个小延迟,以免超出接收器.我试过usleep()和nanosleep(),但它们似乎太慢了.我已经实现了一个繁忙的等待循环并取得了更大的成功,但我知道这不是最有效的方法.我对任何人尝试做我正在做的事情感兴趣.其他人是否发现usleep()和nanosleep()能够很好地适用于此类应用?
谢谢,
Danny Llewallyn
解决方法 睡眠函数在非常小的时间间隔内的行为在很大程度上取决于内核版本和配置.
如果你有一个“无滴答”内核(CONfig_NO_HZ)和高分辨率的定时器,那么你可以期望睡眠非常接近你所要求的.
否则,您通常会以定时器中断的粒度结束睡眠.定时器中断间隔是可配置的(CONfig_HZ) – 10ms,4ms,3.3ms和1ms是常见的选择.
总结
以上是内存溢出为你收集整理的c – 为什么nanosleep()和usleep()太慢了?全部内容,希望文章能够帮你解决c – 为什么nanosleep()和usleep()太慢了?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)