Linux平台延时之sleep、usleep、nanosleep、select比较

Linux平台延时之sleep、usleep、nanosleep、select比较

  1. sleep的精度是秒

  2. usleep的精度是微妙,不精确

  3. select的精度是微妙,精确

  4. struct  timeval delay;
    delay.tv_sec 
    =  0 ;
    delay.tv_usec 
    =  20  *  1000 //  20 ms
    select( 0 , NULL, NULL, NULL,  & delay);

  5. nanosleep的精度是纳秒,不精确

  6. unix、linux系统尽量不要使用usleep和sleep而应该使用nanosleep,使用nanosleep应注意判断返回值和错误代码,否则容易造成cpu占用率100%。

  7. 上面提到usleep和nanosleep不精确的实验,参见这里

你可能感兴趣的:(Linux平台延时之sleep、usleep、nanosleep、select比较)