当前位置:首页 > 日记 > 正文

nanosleep之间的差异()()()的Linux下的睡眠

nanosleep之间的差异()()()的Linux下的睡眠
点评:睡眠()和()nanosleep都唤醒了一段时间的睡眠后,但两者是完全不同的。
在用户程序中休眠:

睡眠()
Usleep()
Nanosleep()

睡眠()和()nanosleep都唤醒了一段时间的睡眠后,但两者的实现是完全不同的。
Linux没有提供系统调用),睡眠(睡眠()在库函数实现的,它要求报警()来设置报警时间,呼叫sigsuspend()挂过程对信号sigalarm,睡眠()只能精确到秒级。

(nanosleep)是linux的系统调用,这是使用定时器来实现,调用调用进程睡眠,并添加一个定时器队列式timer_list定时器,time_list结构和功能执行包括觉醒后的苏醒时间,通过nanosleep()函数执行加入定时器就醒了当前进程的功能。定期检查排队系统通过一定的机制(时间片检查当前进程通过系统调用等为核心,从核心到用户返回的状态,已经是筋疲力尽,如果是电话安排()函数来调度,该函数将检查定时器队列,另一个缓慢的中断会这个检查返回前),如果时间超过,执行规范指定定时器功能调用的过程。当然,这nanosleep()精度不是很高,可能的损失的系统时间片。

闹钟()也可以通过定时器实现,但其准确度只有秒级。此外,其定时执行功能是发送SIGALRM信号当前进程在指定的时间。
复制代码代码如下所示:
#包括
#包括
#包括
#包括
#包括
#define COUNT 1000
#定义万1000000l
主(空)
{
int i;
结构timespec slptm;
长TDIF;
结构的当前趋势,堵;
slptm.tv_sec = 0;
slptm.tv_nsec = 1000; / / 1000 ns = 1美元
/ /结构sched_param参数;
/ / param.sched_priority = 0;
/ / sched_setscheduler(getpid(),sched_fifo,参数);
如果(gettimeofday(TSTART,null)= = 1){
Fprintf(stderr,未能获得启动时间;
返回1;
}
对于(i = 0;i <计数;i + +){
如果(nanosleep(slptm,null)= = 1){
perror(没有nanosleep );
返回1;
}
}
如果(gettimeofday(倾向、空)= = 1){
Fprintf(stderr,没有结束时间;
返回1;
}
TDIF =万*(tend.tv_sec -堵。tv_sec)+(tend.tv_usec -堵。tv_usec);
printf(nanosleep()时间是%ld美国
返回0;
}
赫兹250hz
时钟中断时间间隔:4毫秒(1000ms / 250)
----------------------------------------
Nanosleep()的时间是4019美元(4.019毫秒)
这表明,nanosleep睡眠定时器取决于时钟中断

赫兹1000hz
时钟中断时间间隔:1毫秒。
----------------------------------------
Nanosleep()的时间是12美元
注:最低睡眠时间为1美元。

相关文章

PHP实现的封装验证码类详细解决方

PHP实现的封装验证码类详细解决方

封装,解决方案,验证码,详细,电脑软件,用PHP编写一个验证代码类并封装它。 课程名称:validationcode.class.php 代码如下: 复制代码代码如下所示: 类validationcode { 私人宽度; 私人身高; 画布的大小; 私有$图像; 私人disturbcolornum美元; 私人$…

hpzstatn.exe的功能是什么该hpzsta

hpzstatn.exe的功能是什么该hpzsta

查询,功能,过程,电脑软件,hpzstatn,点评:hpzstatn.exe是HP的HP打印机的硬件驱动程序 进程文件:hpzstatn或hpzstatn.exe 进程名称:HP Deskjet任务栏实用 过程类别:安全风险的过程 英文描述: hpzstatn.exe是一个过程,属于HP Deskjet任务栏工具是…

win7鼠标移动到桌面和显示桌面不响

win7鼠标移动到桌面和显示桌面不响

显示桌面,鼠标移动,桌面,响应,电脑软件,点评:win7任务栏最右边的部分,默认情况下,如果你移动鼠标在win7桌面右下方的桌面上,等待大约0.5秒钟的时间,你可以暂时显示桌面。如果您没有出现,请按照以下方法解决。 为什么鼠标移动到显示桌面,没有响应 …

它会移动的移动版!三大平台

它会移动的移动版!三大平台

平台,三大,它会,电脑软件,它是一个经典的音乐播放器,以专注的态度、精湛的技术,简单的界面,赢得了众多的粉丝,但在最近几年有点停滞不前,尤其是在国内市场,除了少量的忠诚,也敌不过那些华丽的XX音乐。 但现在,它已准备好重新开始,开放移动时代,而进…

后装Win8,电脑屏幕模糊,分辨率不能调

后装Win8,电脑屏幕模糊,分辨率不能调

分辨率,调整,模糊,电脑屏幕,电脑软件,问题: 在一小部分用户安装Win8系统,显示屏幕变得模糊。结果发现,屏幕分辨率太低,无法调整分辨率。 答案uff1a 安装Win8的计算机后,上述现象,由于Win8.1系统默认的显卡驱动兼容性差,更新显卡驱动。 Win8更新…

下载速度慢不限于下载速度(解决方案

下载速度慢不限于下载速度(解决方案

下载速度,解决方案,下载,速度慢,电脑软件,问题: 我用诺拉已经两年了,而且曾经很好。现在下载速度很慢,也可以根据Nora论坛提供的解决方案来解决。下载新版本,添加优先级,到官方网站,看电影,网络测试等等。不,不是像Nora一定要打雷,不是VIP会员限制…

PHPjson_decode功能详细分析

PHPjson_decode功能详细分析

功能,详细,电脑软件,PHPjson_decode,1。功能简介 1,这个函数有四个参数,一般在前两个使用中使用,具体参数可以在手册中看到。 2,第一个参数是JSON格式字符串,第二个参数是布尔值(false被转换为对象,真的被转换成数组,默认为false),如果转换失败,返回n…

通过PHP引用地址更改变量值的问题

通过PHP引用地址更改变量值的问题

引用,地址,变量值,电脑软件,PHP,复制代码代码如下所示: $ foo =鲍勃'; / /鲍勃分配给变量$foo $ bar = $; $; 美元=我的名字是$ ; $栏; 还修改了 > 输出: 鲍勃 我叫鲍伯。 我叫鲍伯。 我们看到,在引用和赋值之后,原始值实际上被修改了,但是在赋值…

关掉Fedora8不需要的服务

关掉Fedora8不需要的服务

服务,不需要,电脑软件,注释:单击系统管理服务。如果你不想下次启动服务,在服务前的基。 consolekit fedota的新功能,如果你想使用这个新功能,把它关掉,关掉它。 Anacron ATD crond 这是一些调试程序的后台服务,和一般的桌面用户可以Anacron,一 …

Windows任务管理器的主版本是如何

Windows任务管理器的主版本是如何

任务管理器,本是,主版,电脑软件,Windows,评论:很多新手朋友都被任务管理人员禁止,没有办法对付他们。下面是Windows的家庭版本的一个很好的解决方案。 如果你是一个Windows家庭版,因为没有组策略,可以使用注册表修复,地点:hkey_current_usersoftw…

构建Linux防火墙的概念和使用iptab

构建Linux防火墙的概念和使用iptab

防火墙,电脑软件,Linux,iptables,回顾:目标(目标) 正如我们已经知道的,目标是由规则指定的操作,以及与规则匹配的数据包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。用于建立高级规则的目标,如日志、重定向、标记、镜像和…

什么过程picsvr过程查询picsvr.exe

什么过程picsvr过程查询picsvr.exe

查询,过程,电脑软件,picsvr,exe,点评:picsvr.exe是篡改程序,篡改IE设置,在桌面创建图标指向其合作伙伴网站 进程文件:picsvr或picsvr.exe 进程名称:adware.delfin项目过程。 过程类别:安全风险的过程 英文描述: picsvr.exe or这意味着它会间歇性…