[常规延时]Windows下的cmd和linux下的shell实现简单延时的方法,Linux平台延时之sleep、usleep、nanosleep、select比较。

jackxiang 2013-6-26 16:14 | |
背景:
  在Linux上或windows上有时接口调用时需要有一个延时(模拟和真实访问一样),于是在windows下和linux下都需要要这样的延时函数。

Windows下延时两秒示例:



Linux下延时两秒示例:
usleep - sleep some number of microseconds 它微妙:


Linux平台延时之sleep、usleep、nanosleep、select比较:
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不精确的实验,参见这里:http://www.lslnet.com/linux/dosc1/18/linux-188816.htm
摘自:http://www.cppblog.com/kongque/archive/2011/01/18/138765.aspx

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6486/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2014-2-12 15:33
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]