linux中usleep和sleep的功能和使用存在什么区别
Admin 2022-08-17 群英技术资讯 1204 次浏览
在这篇文章中,我们来学习一下“linux中usleep和sleep的功能和使用存在什么区别”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。linux中usleep和sleep的区别:sleep函数用于执行挂起指定的秒数,而usleep功能是执行挂起指定的微秒数。sleep是非系统调用,在库函数中实现,是通过alarm()来设定报警时间的,usleep除了时间单位为微秒以外,在使用上与sleep差不多。

本教程操作环境:linux7.3系统、Dell G3电脑。
(1)sleep()-------以秒为单位
头文件:
#include <windows.h> // 在VC中使用带上头文件
#include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同功 能: 执行挂起指定的秒数
语 法:
unsigned int sleep(unsigned int seconds);
sleep()非系统调用,sleep()是在库函数中实现的,它是通过alarm()来设定报警时间,使用sigsuspend()将进程挂起在信号SIGALARM上。
sleep()只能精确到秒级上。sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。
#include<unistd.h>
return:若进程暂停到参数seconds 所指定的时间,成功则返回0,若有信号中断则返回剩余秒数。
示例:
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1;
printf("hello");
sleep(a); /* VC 使用Sleep*/
printf("world");
return 0;
} (2)usleep()----以微秒为单位
头文件:
#include <unistd.h>
功 能: usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒);
语 法:
void usleep(int micro_seconds);
除了时间单位为微秒以外,在使用上与sleep()差不多。还有就是实现也是不同的,sleep因为是用alarm实现的,所以时间单位为s ,而usleep的时间单位为us
,那肯定不是由alarm实现的,所以说它们的实现不同,但都是linux用的,而window下不能用,因为都是sleep和usleep都是在unistd.h下定义的。
#include<unistd.h>
return:若进程暂停到参数seconds 所指定的时间,成功则返回0,若有信号中断则返回剩余微秒数。
返回值: 无
内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的微秒数(us)。
注 意:
这个函数不能工作在windows 操作系统中。用在Linux的测试环境下面。
参 见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。
是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。
如果延迟时间为几十毫秒(1ms = 1000us),或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
linux与windows区别在哪?一些对电脑系统不是很了解朋友可能不是很清楚这个问题,其实linux与windows是存在很多不同的,例如安全性、软件支持,应用范畴等等方面都有一定的区别,本文小编整理的八点不同,感兴趣的朋友可以了解一下。
linux系统安装mysql的具体操作你真的知道吗?需要了解清楚这方面内容的朋友可以看一看小编所整理的资料,如果你感兴趣的话千万不要错过了。
今天带大家来了解下Linux/Unix目录结构的区别是什么?需要这方面知识点的小伙伴可以看看小编所整理的资料,相信这篇文章一定不会让你失望的。
这篇文章主要介绍了浅谈为什么磁盘慢会导致Linux负载飙升,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
为了满足小伙伴们的需求,小编给大家带来了linux访问win系统共享文件的详细教程内容,本文所阐述的知识点具有一定参考价值,下面的时间就一起来看看。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008