2

我需要在 Linux 内核中进行一些轮询以继续一段时间,所以我需要设计在几毫秒间隔后退出的 while 循环。那么我该怎么做呢?

我虽然可以使用gettimeofday(),但可以在用户空间使用,我希望在内核空间使用它。

4

2 回答 2

2

使用msecs_to_jiffies

unsigned long j0,j1,delay;
delay = msecs_to_jiffies(20); /* 20 msec delay */
j0 = jiffies; 
j1 = j0 + delay; 

while (time_before(jiffies, j1)) 
        /* do something */

如果您的系统上有高分辨率计时器,您可以使用它的时间量级小于一瞬间。一般考虑使用内核定时器或hrt.

于 2013-04-16T09:00:20.430 回答
-3

您可以使用该sleep功能,例如sleep(1):它将停止活动 1 秒。

于 2013-04-16T08:58:05.073 回答