clock_nanosleep避免过度睡眠

/*
 *   “oversleeping” problem is particularly marked for a process that uses a loop to re start
 *   a sleep that is interrupted by a signal handler. If signals are delivered at a high rate
 *   , then a relative sleep (of the type performed by nanosleep()) can lead to large inaccuracies
 *   in the time a process spends sleeping. We can avoid the oversleeping problem by making an
 *   initial call to clock_gettime() to retrieve the time, adding the  desired amount to that time,
 *   and then calling  clock_nanosleep() with the TIMER_ABSTIME  flag (and restarting the system
 *   call if it is interrupted by a signal handler).
 */

struct timespec request;
/* Retrieve current value of CLOCK_REALTIME clock */
if (clock_gettime(CLOCK_REALTIME, &request) == -1)
    errExit("clock_gettime");
request.tv_sec += 20;               /* Sleep for 20 seconds from now */
s = clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, &request, NULL);
if (s != 0) {
    if (s == EINTR)
        printf("Interrupted by signal handler\n");
    else
        errExitEN(s, "clock_nanosleep");
}
时间: 2025-01-30 11:42:47

clock_nanosleep避免过度睡眠的相关文章

关于睡眠健康那些事

睡觉的诀窍  根据医学和我的体验.观察,一个人真正睡着觉最多只有两个钟头,其余都是浪费时间,躺在枕头上做梦,没有哪个人不做梦.至于醒来觉得自己没有做梦,那是因为他忘记了.  通常一个人睡两个钟头就够了,为什么有人要睡七.八个钟头?那是你赖床躺在枕头上休息的习惯养成的,并非我们需要那么久的睡眠时间,尤其打坐做功夫的人晓得,正午只要闭眼真正睡着三分钟,等于睡两个钟头,不过要对好正午的时间.夜晚则要在正子时睡着,五分钟等于六个钟头.  就这个时间的学问又大了,同宇宙法则.地球法则.易经阴阳的道理有关系

专家支十招 助你拥有好睡眠

随着生活工作节奏的加快或疾病的影响,许多人出现了睡眠障碍,而失眠是睡眠障碍中最常见的表现之一,占睡眠障碍的80%以上.如果你感到睡眠的时间缩短或睡眠的质量差并影响白天的工作生活时,可能就患有失眠了.据河北医大一院神经内二科主任顾平介绍,失眠表现为夜晚入睡困难.半夜频醒.早醒.睡眠浅或多梦,而白天出现一种或多种不适的症状,如头昏.头痛.心悸.气短.不思饮食.急躁易怒.胸肋胀满.口苦.疲乏健忘.注意力不集中,使得工作与学习效率下降.如果这种状况每周大于3次,时间持续1个月时,就需要积极治疗了. 睡得

4个睡眠中的“小动作”,暴露了你的身体状况

人生有1/3的时间是在睡眠中度过的,优质的睡眠会让人第二天醒来感觉精力充沛.身心舒畅.可有时,我们的睡眠并非总是那么美好,明明睡着了,身体却不消停,磨牙.说梦话.身体抽动-- 腿抽动心理压力大 迷迷糊糊快要睡着的时候,身体突然不由自主地抽动一下,有人还会因此惊醒导致睡眠中断. 这种情况更有可能发生在你过度疲劳或者睡眠被惊扰时.此时你的大脑已经进入了睡眠周期,但身体还没跟上. 专家分析说,人在过度劳累.精神紧张.心理压力之下,有可能引起入睡时身体不自觉地抽动,可发生在午睡时,也可发生在夜晚入睡时.

世界睡眠日,该如何拯救我们的睡眠质量

昨天,是世界睡眠日.随着社会生活压力的不断增加,人们出现的睡眠问题也越来越普遍,这降低了人们的生命质量和工作效率. 根据青海红十字医院的一项<青海地区不同海拔高度人群睡眠情况及鼾症流行病学调查>显示,西宁地区有超过三分之一的人群存在睡眠障碍.海拔是影响睡眠的关键因素之一,在3500米,睡眠障碍的发生率是西宁地区的两倍还要多. 年龄的增加,使睡眠障碍发生率明显上升,50岁以上人群睡眠障碍的发生率超过六成. 入睡困难.晨起头痛.睡眠不足的发病率女性高于男性,其他症状的发病率均男性较高. 近五分之一

睡眠与养生[转载]

http://www.ixpub.net/thread-708822-1-1.html 所以,根据医学和我的体验.观察,一个人真正睡着觉最多只有两个钟头,其余都是浪费时间,躺在枕头上做梦,没有哪个人不做梦.至于醒来觉得自己没有做梦,那是因为他忘记了.通常一个人睡两个钟头就够了,为什么有人要睡七.八个钟头?那是你赖床躺在枕头上休息的习惯养成的,并非我们需要那么久的睡眠时间,尤其打坐做功夫的人晓得,正午只要闭眼真正睡着三分钟,等于睡两个钟头,不过要对好正午的时间.夜晚则要在正子时睡着,五分钟等于六个

自选Win7“睡眠”和“休眠”模式

  我看着电脑上一堆正待处理的照片,犹豫着要不要关电脑.如果关机,回来的时候很多程序.网页又要重新打开;如果不关机,电脑白白开着浪费电.真有点左右为难-- 大哥笑着说:"Win7有睡眠和休眠功能,选用一个呗!" "睡眠和休眠有啥区别呢?"我问道. 大哥告诉我:电脑在"睡眠"状态时会切断除内存外其他配件的电源,工作状态的数据将保存在内存中,需要唤醒时,只需要按一下电源按钮或者晃动一下USB鼠标就可以快速唤醒电脑恢复睡眠前的电脑状态.但因为睡眠状态并

自主选择Win7“睡眠”和“休眠”模式

我看着电脑上一堆正待处理的照片,犹豫着要不要关电脑.如果关机,回来的时候很多程序.网页又要重新打开;如果不关机,电脑白白开着浪费电.真有点左右为难-- 大哥笑着说:"Win7有睡眠和休眠功能,选用一个呗!" "睡眠和休眠有啥区别呢?"我问道. 大哥告诉我:电脑在"睡眠"状态时会切断除内存外其他配件的电源,工作状态的数据将保存在内存中,需要唤醒时,只需要按一下电源按钮或者晃动一下 USB鼠标就可以快速唤醒电脑恢复睡眠前的电脑状态.但因为睡眠状态并没

Win7系统睡眠模式如何设置

电脑在睡眠状态时,将切断除内存外其他配件的电源,工作状态的数据将保存在内存中,等下次在重新唤醒电脑时,就可以直接进入工作状态,Win7系统睡眠模式如何设置呢? 一.短暂离开用"睡眠" 让电脑小憩一会儿 平时使用电脑,常常有这样的情况:偶尔需要离开一段时间,或长或短,不是很固定,比如中午或晚上吃饭的时候就是如此.而此时如果关机的话,显得有些小题大做,因为回来的时候很多程序.网页又要重新打开,可是如果不关机,电脑又是白白开着浪费电,如果再有什么事儿耽搁一下,时间从一个小时变成两个小时也不一

windows休眠睡眠详解

  速度可要比关机之后重新启动快多了!而且睡眠前所有的工作都可以继承,而不需要重新启动.假如长时间不用电脑,最好是选择关机. "休眠"是一种主要为便携式计算机设计的电源节能状态,这种状态下会将打开的文档和程序保留到硬盘的一个文件中(可以理解为内存状态的镜像),当下次开机后则从这个文件读取数据,并载入物理内存,这个文件和物理内存一样大小. . 启用睡眠功能的方法有两种,一种是在开始菜单的关机按钮当中直接点击睡眠,另外一种是可以在计算机电源治理当中设定时间,只要电脑一直没有人操纵并达到了这