我有一个程序,生成数据包发送到接收器.我需要一种有效的方法,在每个数据包的发送之间引入一个小延迟,以免超出接收器.我试过usleep()和nanosleep(),但它们似乎太慢了.我已经实现了一个繁忙的等待循环并取得了更大的成功,但我知道这不是最有效的方法.我对任何人尝试做我正在做的事情感兴趣.其他人是否发现usleep()和nanosleep()能够很好地适用于此类应用?
谢谢,
Danny Llewallyn
睡眠函数在非常小的时间间隔内的行为在很大程度上取决于内核版本和配置.
如果你有一个"无CONFIG_NO_HZ定时"的内核()和高分辨率的定时器,那么你可以期待睡眠非常接近你所要求的.
否则,您通常会以定时器中断的粒度结束睡眠.定时器中断间隔是可配置的(CONFIG_HZ) - 10ms,4ms,3.3ms和1ms是常见的选择.
| 归档时间: |
|
| 查看次数: |
7787 次 |
| 最近记录: |