-
sleep的精度是秒
-
usleep的精度是微妙,不精確
-
select的精度是微妙,精確
struct timeval delay;
delay.tv_sec = 0;
delay.tv_usec = 20 * 1000; // 20 ms
select(0, NULL, NULL, NULL, &delay);
-
nanosleep的精度是納秒,不精確
-
unix、linux系統盡量不要使用usleep和sleep而應該使用nanosleep,使用nanosleep應注意判斷返回值和錯誤代碼,否則容易造成cpu占用率100%。
-
上面提到usleep和nanosleep不精確的實驗,參見這里