linux msleep 头文件,Linux延迟函数
從Linux應用層和內核兩方面來區分下延遲函數:
1. 應用層
1>
sleep usleep
微秒級
頭文件為;
3> nanosleep
相比標準UNIX 的sleep 調用具有更高高精度的版本。和普通的sleep 調用計算整秒數不同,nanosleep 接受一個指向一個struct timespec 對象的指針作為參數,它可以表示毫微秒(nanosecond,十億分之一秒)的時間。然而,了解 Linux 內核的工作細節后可知,nanosleep 所提供的真正精確度是10毫秒——比 sleep 提供的要精確。這個附加的精確度非常有用,比如說,可以根為反復進行的任務設置更短的間隔。struct
timespec 由兩部分構成:tv_sec 表示整秒數部分;tv_nsec 則表示毫微秒。tv_nesc 的值必須小于109。
nanosleep 相比sleep具有另一個優點。與sleep 相同,nanosleep 調用可以被信號中斷,這是errno
將被設置為 EINTR 而調用將返回 -1。但是,nanosleep 的第二個參數,另一個指向struct timespec 對象的指針,如果不為 NULL 則在這種情況下它將被寫入剩余的時間(這就是所請求的睡眠時間和實際睡眠時間的差)。這使重新開始睡眠變的很容易。
頭文件 。
2. 內核
1> udelay mdelay ndelay
實現的原理本質上都是忙等待,ndelay和mdelay都是通過udelay衍生出來的.
由于這些delay函數本質上都是忙等待,對于長時間的忙等待意味這無謂的耗費著cpu的資源.
udelay一般適用于一個比較小的delay,如果你填的數大于2000,系統會認為你這個是一個錯誤的delay函數,因此如果需要2ms以上的delay需要使用mdelay函數。
2> msleep,ssleep
毫秒級的延時,這些函數將使得調用它的進程睡眠參數指定的時間。
總之,*sleep是可以進行系統調度,耗用資源小,*delay下是不能進行系統調度,非常耗費資源。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
總結
以上是生活随笔為你收集整理的linux msleep 头文件,Linux延迟函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle awr 数据删除,Orac
- 下一篇: linux刷除U盘grub,删除linu