微秒用户空间忙等待循环

时间:2012-08-18 19:01:30

标签: linux time

对于像linux / delay.h中的udelay这样可以在用户空间中使用的函数的建议吗?

从用户空间,我想每隔10秒生成一次事件。准确性并不是非常重要,但我希望尽可能接近它。像usleep这样的东西不起作用,因为上下文切换开销。现在我有一个忙等待循环,它使用带有CLOCK_MONOTONIC时钟的clock_gettime,它不断地将当前时间与开始循环之前的时间进行比较,并在经过的微秒数后返回。它比使用usleep要好得多,但是如果不编写内核代码(或切换到实时linux),我可以做得更好吗?感谢。

1 个答案:

答案 0 :(得分:1)

select(2)超时,没有FD应该是一个不错的选择。请记住在每次呼叫之前初始化超时。