2020年11月5日 星期四

Linunx的時間延遲 - sleep,usleep

 時鐘換算:

1秒(s) = 1000 毫秒(ms) = 1,000,000 微秒(μs) = 1,000,000,000 納秒(ns) = 1,000,000,000,000 皮秒(ps)

程序掛起主要有以下幾種:

sleep, usleep

它們的精度不同,在不同的應用場景下需要不同的函數;


一、用法

1.1 函數名: sleep

頭文件:

#include <unistd.h> // 在gcc編譯器中,使用的頭文件因gcc版本的不同而不同


功 能: 執行掛起指定的秒數

語 法: unsigned sleep(unsigned seconds);

示例:

#include<stdio.h>


int main()

{

  int a;

  a=1;

  printf("hello");

  sleep(a);

  printf("world");

  return 0;

}


1.2 函數名: usleep

功 能: usleep功能把進程掛起一段時間, 單位是微秒(百萬分之一秒);

頭文件: #include <unistd.h>

語 法:

void usleep(int micro_seconds);

返回值: 無

內容說明:本函數可暫時使程序停止執行。參數 micro_seconds 為要暫停的微秒數(us)。


注 意:

用在Linux的測試環境下面。

參 見:usleep() 與sleep()類似,用於延遲掛起進程。進程被掛起放到reday queue。

是一般情況下,延遲時間數量級是秒的時候,盡可能使用sleep()函數。

如果延遲時間為幾十毫秒(1ms = 1000us),或者更小,盡可能使用usleep()函數。這樣才能最佳的利用CPU時間.

沒有留言:

張貼留言