2

对可以在用户空间使用的 linux/delay.h 中的 udelay 之类的函数有什么建议吗?

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

4

1 回答 1

1

select(2)超时且没有 FD 应该是一个不错的选择。只要记住每次调用前都要初始化超时。

于 2012-08-18T21:06:29.943 回答