Linux 睡眠時間函數如何使用?延遲指定時間sleep命令瞭解一下

Linux免費開源,主要用於服務器領域,性能穩定安全,95%的企業服務器使用的都是 Linux 系統。Linux功能強大,包含的函數也不少,其中Linux包含三種睡眠時間函數,sleep()、usleep()、nanosleep()函數。這三種睡眠時間函數有什麼區別?那做爲經常使用的sleep函數又該如何使用?
1.sleep()——以秒爲單位
unsigned int sleep(unsigned int seconds);
sleep()非系統調用,sleep()是在庫函數中實現的,它是經過alarm()來設定報警時間,使用sigsuspend()將進程掛起在信號SIGALARM上。sleep()只能精確到秒級上。sleep()會令目前的進程暫停,直到達到參數seconds 所指定的時間,或是被信號所中斷。
2.usleep()——以微秒爲單位
unsigned int usleep(unsigned int useconds);
除了時間單位爲微秒之外,在使用上與sleep()差很少。還有就是實現也是不一樣的,sleep是用alarm實現的,時間單位爲s,而usleep的時間單位爲us,因此說它們的實現不一樣,但都是linux用的,而window下不能用,由於都是sleep和usleep都是在unistd.h下定義的。
3.nanosleep( )——以納秒爲單位
該函數屬於linux中的短延遲函數,保證了函數的精確度。linux

1572491542169.jpg
在linux編程中,有時候會用到定時功能,常見的是用sleep(time)函數來睡眠time秒。sleep是一個命令行實用程序,容許您將調用進程掛起一段指定的時間。也就是說,sleep命令在給定的時間內暫停下一個命令的執行。這個函數是能夠被中斷的,即當進程在睡眠的過程當中,若是被中斷,那麼當中斷結束回來再執行該進程的時候,該進程會從sleep函數的下一條語句執行;這樣的話就不會睡眠time秒了。那麼sleep函數如何使用?
使用權限 : 全部使用者
使用方式 : sleep [--help] [--version] number[smhd]
說明 : sleep 能夠用來將目前動做延遲一段時間
參數說明 :
–help : 顯示輔助訊息
–version : 顯示版本編號
number : 時間長度,後面可接 s(秒)、m(分鐘)、h(小時)或 d(日)
簡單例子 :
顯示目前時間後延遲5小時,以後再次顯示時間 :
date;sleep 5h;date
1572491601359.jpg編程

相關文章
相關標籤/搜索