QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2936|回复: 3

求助:关于usleep函数的使用

[复制链接]
发表于 2005-11-26 00:41:32 | 显示全部楼层 |阅读模式
如下代码
[code:1]
#include <sys/time.h>
#include <unistd.h>

void main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf("%d.%06d\n", tv.tv_sec,tv.tv_usec);
usleep(10);
gettimeofday (&tv , &tz);
printf("%d.%06d\n", tv.tv_sec,tv.tv_usec);
}
[/code:1]
得出段时间差为
1132936630.085952
1132936630.092706
但是我用usleep(10);应该是停顿10微秒啊。
usleep的误差这么大吗?我需要停顿精确到毫秒有什么更好的办法没有呢?
发表于 2005-11-26 01:34:54 | 显示全部楼层
一般的内核不行。

我记得内核的缺省最小时间片就是10ms,也就是1s内核切换100次。

好像经验上最小能精确到50ms的间隔,再小就没谱了。
回复

使用道具 举报

 楼主| 发表于 2005-11-26 21:41:07 | 显示全部楼层
哦,原来是这样啊!多谢大大
回复

使用道具 举报

 楼主| 发表于 2005-11-27 23:21:11 | 显示全部楼层
那么我想程序在1秒钟之内完成900~1000次某个操作有什么其他办法呢(原来想通过延时1毫妙实现)?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 02:30 , Processed in 0.201761 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表