linux的几种定时器实现-(timer implementation under linux)
2012-09-06 10:27
435 查看
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。
linux内部的三个定时器(setitimer);
sleep,
usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号;
用gettimeofday,
difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。
linux内部的三个定时器
ITIMER_REAL:实时定时器,不管进程在何种模式下运行(甚至在进程被挂起时),它总在计数。定时到达,向进程发送SIGALRM信号。
ITIMER_VIRTUAL:这个不是实时定时器,当进程在用户模式(即程序执行时)计算进程执行的时间。定时到达后向该进程发送SIGVTALRM信号。
ITIMER_PROF:进程在用户模式(即程序执行时)和核心模式(即进程调度用时)均计数。定时到达产生SIGPROF信号。ITIMER_PROF记录的时间比ITIMER_VIRTUAL多了进程调度所花的时间。
linux内部的三个定时器(setitimer);
sleep,
usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号;
用gettimeofday,
difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。
linux内部的三个定时器
ITIMER_REAL:实时定时器,不管进程在何种模式下运行(甚至在进程被挂起时),它总在计数。定时到达,向进程发送SIGALRM信号。
ITIMER_VIRTUAL:这个不是实时定时器,当进程在用户模式(即程序执行时)计算进程执行的时间。定时到达后向该进程发送SIGVTALRM信号。
ITIMER_PROF:进程在用户模式(即程序执行时)和核心模式(即进程调度用时)均计数。定时到达产生SIGPROF信号。ITIMER_PROF记录的时间比ITIMER_VIRTUAL多了进程调度所花的时间。
相关文章推荐
- Linux下实现定时器Timer的几种方法
- Linux下实现定时器Timer的几种方法
- Linux下实现定时器Timer的几种方法
- Linux下实现定时器Timer的几种方法
- Linux下实现定时器Timer的几种方法总结
- linux c下几种定时器实现
- (笔记)linux下用select函数的超时实现timer(时间定时器s)
- linux下多定时器的实现-(multimer implementation under linux)
- epoll定时器实现系列文章:linux c++ 利用timerfd和epoll封装计时器(Timer)类
- Spring定时任务的几种实现Quartz Timer task
- ACE中几种timer的实现 (Timer Framework)
- Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
- 【转】Android 定时器实现的几种方式和removeCallbacks失效问题详解--不错
- java Quartz定时器任务与Spring task定时的几种实现,
- Android定时器Timer的停止和重启实现代码
- [转] Linux应用层的定时器Timer
- Linux时间子系统之五:低分辨率定时器的原理和实现
- linux驱动之内核空间几种长延时的实现策略的优劣评估
- Linux下几种RTP协议实现的比较和JRTPLIB编程讲解
- 纯PHP实现定时器任务(Timer)