孔雀开发小屋

专注并致力于手机客户端开发
<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

  • 随笔 - 103
  • 文章 - 0
  • 评论 - 251
  • 引用 - 0

常用链接

留言簿(38)

随笔分类

随笔档案

关注的博客

朋友的博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

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. unixlinux系统尽量不要使用usleepsleep而应该使用nanosleep,使用nanosleep应注意判断返回值和错误代码,否则容易造成cpu占用率100%

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


posted on 2011-01-18 17:12 孔雀 阅读(31201) 评论(3)  编辑 收藏 引用 所属分类: C/C++

评论

# re: Linux平台延时之sleep、usleep、nanosleep、select比较[未登录] 2011-01-19 10:56 foxriver

sleep/usleep主要用途是均分cpu占用资源,变相降低当前进程优先级。并不是为了计时而设定的。
  回复  更多评论    

# re: Linux平台延时之sleep、usleep、nanosleep、select比较[未登录] 2011-01-19 18:23 a

新的cpu都支持HPET的,nanosleep可以做到非常高的精确度。链接里面的文章明显不靠谱。建议楼主自己实验一下。
  回复  更多评论    

# re: Linux平台延时之sleep、usleep、nanosleep、select比较 2014-03-10 17:05 大幅度

不是吧,在linux内核为2.6几以上的好像是把sleep和usleep都改了,不再是用死循环来解决计时的了
  回复  更多评论    

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理