内核中的延时函数
程序员文章站
2024-01-23 14:16:28
...
延时分为:忙等待延时,睡眠延时。 //针对cpu
忙等待延时: //原理类似while进行变量减减计数
void ndelay(unsigned long ns); //纳秒
void udelay(unsigned long us); //微妙
void mdelay(unsigned long ms); //毫秒
unsigned long delay_s = jiffies + 10 * HZ; //利用jiffies,进行秒级别延时
while (time_before(jiffies, delay_s)); //jiffies为内核全局变量,记录系统启动以来的滴答数
睡眠延时: //延时时,其他线程可以占用cpu干事
void msleep(unsigned int msecs); // kernel/include/linux/delay.h
unsigned long msleep_interruptible(unsigned int msecs);
睡眠延时主要是上面两个函数,内部调用的时schedule_timeout(signed long timeout)
//当前线程延时指定时间,后唤醒当前线程,再往里面的本质是定时器
------------
就记这么多,往里面不深入去看了,主要记住函数
下一篇: Android导出dropbox日志