【发布时间】:2010-05-27 13:13:25
【问题描述】:
我有一个程序可以生成要发送到接收器的数据包。我需要一种有效的方法来在每个数据包的发送之间引入一个小的延迟,以免超出接收器。我试过 usleep() 和 nanosleep() 但它们似乎太慢了。我已经实现了一个繁忙的等待循环并且取得了更大的成功,但我知道这不是最有效的方法。我对任何人尝试做我正在做的事情的经历感兴趣。其他人是否认为 usleep() 和 nanosleep() 适合此类应用程序?
谢谢,
丹尼·勒沃林
【问题讨论】:
-
问题很模糊——你需要多长时间的延迟,为什么你认为 nanosleep/usleep 不能提供这种延迟?
-
显然,我们不知道你在做什么的细节,但我认为 nanosleep 就足够了。你的睡眠需要多准确?操作系统将保证至少会发生请求的延迟时间 - 但它不会对超出睡眠请求的时间量做出类似的保证。
-
在我的 Raspberry Pi 上,调用 nanosleep 需要超过 73us。我想我也必须去忙循环。