Linux免费开源,主要用于服务器领域,性能稳定安全,95%的企业服务器使用的都是 Linux 系统。Linux功能强大,包含的函数也很多,其中Linux包含三种睡眠时间函数,sleep()、usleep()、nanosleep()函数。这三种睡眠时间函数有什么区别?那作为常用的sleep函数又该如何使用?
1.sleep()——以秒为单位
unsigned int sleep(unsigned int seconds);
sleep()非系统调用,sleep()是在库函数中实现的,它是通过alarm()来设定报警时间,使用sigsuspend()将进程挂起在信号SIGALARM上。sleep()只能精确到秒级上。sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。
2.usleep()——以微秒为单位
unsigned int usleep(unsigned int useconds);
除了时间单位为微秒以外,在使用上与sleep()差不多。还有就是实现也是不同的,sleep是用alarm实现的,时间单位为s,而usleep的时间单位为us,所以说它们的实现不同,但都是linux用的,而window下不能用,因为都是sleep和usleep都是在unistd.h下定义的。
3.nanosleep( )——以纳秒为单位
该函数属于linux中的短延迟函数,保证了函数的精确度。
在linux编程中,有时候会用到定时功能,常见的是用sleep(time)函数来睡眠time秒。sleep是一个命令行实用程序,允许您将调用进程挂起一段指定的时间。也就是说,sleep命令在给定的时间内暂停下一个命令的执行。这个函数是可以被中断的,即当进程在睡眠的过程中,如果被中断,那么当中断结束回来再执行该进程的时候,该进程会从sleep函数的下一条语句执行;这样的话就不会睡眠time秒了。那么sleep函数如何使用?
使用权限 : 所有使用者
使用方式 : sleep [--help] [--version] number[smhd]
说明 : sleep 可以用来将目前动作延迟一段时间
参数说明 :
–help : 显示辅助讯息
–version : 显示版本编号
number : 时间长度,后面可接 s(秒)、m(分钟)、h(小时)或 d(日)
简单例子 :
显示目前时间后延迟5小时,之后再次显示时间 :
date;sleep 5h;date