linux中usleep和sleep的作用和使用存在什么区别
发布时间:2023-09-19 19:35:28 所属栏目:Linux 来源:互联网
导读: linux中usleep和sleep有什么区别
(1)sleep()-------以秒为单位
头文件:
#include <windows.h> // 在VC中使用带上头文件
#include
(1)sleep()-------以秒为单位
头文件:
#include <windows.h> // 在VC中使用带上头文件
#include
linux中usleep和sleep有什么区别 (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时间 (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐