Linux POSIX Timer介绍

1. POSIX Timer与setitimer的比较

间隔定时器setitimer有一些重要缺点:

  1. 一个进程同一时刻只能有一个timer,假如应用需要同时维护多个Interval不同的计时器,需要自己写代码来维护,非常不方便。而使用POSIX Timer,一个进程可以创建任意多个Timer。
  2. Setitimer计时器时间到达,只能使用信号方式通知使用timer的进程,而POSIX timer可以有多种通知方式,比如信号,或者启动线程。
  3. 使用setitimer时,通知信号的类别不能改变:SIGALRAM,SIGPROF等都为传统信号,而不是实时信号,因此会有time overrun的问题,而POSIX Timer则可以使用实时信号【1】。
  4. Setitimer的精度是ms,而POSIX Timer是针对有实时要求的应用所设计的,接口支持ns级别的始终精度。

【1】 实时信号之所以是可靠的,是因为在进程阻塞该信号的时间内,发给该进程的所有实时信号会排队,而非实时信号则会合并为一个信号。利用kill –l 可查询所有信号,其中SIGHUP(1) ~ SIGSYS(31)是不可靠信号,而SIGRIMIN(33)~SIGRTMAX(64)是可靠信号,也称为实时信号。
参考:
http://blog.csdn.net/hbhhww/article/details/7352723
http://blog.chinaunix.net/uid-25002135-id-3300821.html

2. POSIX Timer使用方法

函数名 功能描述
timer_create 创建一个新的Timer;并指定定时器的通知机制
timer_delete 删除一个Timer
timer_gettime Get the time remaning on a POSIX.1b interval timer
timer_settime 开始或停止某个定时器
tiemr_getoverrun 获取丢失的定时通知个数
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值