Linux 中的 sleep() 函数如何精确到 1 毫秒?

qigefei 2003-07-01 11:40:17
系统函数 usleep(); 是等待1微秒,
但是实际并非如此,比如:
for (i=0; i<100; ++i)
{
usleep(1000); // 等待1毫秒
}
这个循环的理论上说应该是100毫秒,但是实际运行却有10秒左右。

有没有更好的办法能比较精确的等待1毫秒。
...全文
5160 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwunix 2003-07-01
  • 打赏
  • 举报
回复 1
Linux的最小时间单位为10ms,当usleep设置的值小于10时,usleep其实sleep的时间还是10ms
所以,你的程序运行有10s。如果要得到1ms的精度,需要修改Kernel
hohoo 2003-07-01
  • 打赏
  • 举报
回复
usleep(100*1000); //用for循环还要考虑系统之间的调度问题?
qigefei 2003-07-01
  • 打赏
  • 举报
回复
哈,用 select() 正好可以解决我的问题!谢谢大家!
super_lzy 2003-07-01
  • 打赏
  • 举报
回复
在内核中开发程序, 可以用udelay(),进行延迟, 同样达到睡眠效果
com235 2003-07-01
  • 打赏
  • 举报
回复
用select()可以精确到毫秒;
用pselect()可以精确到微秒。


高!
qigefei 2003-07-01
  • 打赏
  • 举报
回复
select()函数怎么用,能具体点吗?
linaxing 2003-07-01
  • 打赏
  • 举报
回复
用select()可以精确到毫秒;
用pselect()可以精确到微秒。
tiejun 2003-07-01
  • 打赏
  • 举报
回复
usleep()!

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧