关于定时函数usleep的问题,急
我在一个线程中需要循环从一个缓冲区内读取数据
在每次循环结束后,将线程挂起一段时间
但为了提高实时性,挂起的时间又不能太长
按照man page里的介绍usleep( int n )应该可以休眠n个microsecond
但是我写了个小程序做了一下测试,结果休眠的时间确远大于microsecond数量级,不知道是为什么
测试程序如下:
int main(void)
{
for (int counter = 0; counter <= 1000; counter++)
{
printf("%d\n", counter);
usleep(10);
}
return 0;
}
屏幕打印的结果说明循环的速度很低
我还试过用select定时,也出现了类似的问题……
这是什么原因?