浅析Linux中的时间编程和实现原理(一) Linux应用层的时间编程
计时器的使用 有时我们需要定时完成一些任务。简单的方法是使用 while 循环加 sleep。比如每隔 1 分钟检查链接情况的 heartbeat 任务等。 清单 8,sleep 加循环 while(condtion) { //do something sleep(interval); } 这可以满足很多程序的定时需要,但假如您不希望程序“偷懒”,即上例中 sleep 的时候您还是希望程序做些有用的工作,那么使用定时器是通常的选择。Linux 系统上最常用的定时器是 setitmer 计时器。 setitimer Linux 为每一个进程提供了 3 个 setitimer 间隔计时器: ITIMER_REAL:减少实际时间,到期的时候发出 SIGALRM 信号。 ITIMER_VIRTUAL:减少有效时间 (进程执行的时间),产生 SIGVTALRM 信号。 ITIMER_PROF:减少进程的有效时间和系统时间 (为进程调度用的时间)。这个经常和上面一个使用用来计算系统内核时间和用户时间。产生 SIGPROF 信号。 所谓 REAL 时间,即我们人类自然感受的时间,英文计算机文档中也经常使用 wall-clock 这个术语。说白了就是我们通常所说的时间,比如现在是下午 5 点 10 分,那么一分钟的 REAL 时间之后就是下午 5 点 11 分。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |