不一定是创建了多份计时器。Linux的timerfd可以在一次成功读取中给出一个累计到期次数:计时器自上次修改设置或上次成功读取以来到期了多少次。对于周期计时器,应用过一段时间才读取,可能一次拿到大于一的计数;它统计的是到期事件,不是系统里有几个计时器对象。

适用的是实际使用timerfd的Linux台式电脑程序,需要确认目标对象、周期设置、设置修改和读取的时点。手册记载这套接口自内核2.6.25、glibc2.8提供,现场支持另核。若日志来自其他库、普通时钟或应用自己的计数器,不能只凭数值相似就用同一解释。
观察还要分清两个返回层次。read返回的是实际读取的字节数,缓冲中的无符号八字节整数才是到期计数;不能看到读了八字节,就记成到期八次。若周期已过去多轮而中间没有成功读取,累计值变大有合理解释;若中间修改过设置或另有读取者,则应先重建对象时间线,不把零散日志简单累加。
到期次数也不表示应用的周期任务已经执行了同样多次。线程可能稍后才获得运行机会,程序也可能有自己的合并或补做规则;这些必须按软件设计与实际记录核。没有任务记录时,不能从一个累计数字宣称漏做了多少业务,更不能让普通用户按该数重新补跑有影响的操作。
风险是把累积误当重复创建,擅自关闭计时器或改周期,反而丢掉原有触发依据。下一步保留去敏的设置、成功读取点与实际任务结果,请维护者核计数和调度关系,不修改原日志凑齐时刻。云岩区台式电脑咨询可拨400-877-9605,说明Linux软件及看到的是到期数还是完成任务数。电脑快修网提供信息展示及第三方维修对接,支持能力、地址和安排当次确认,到期记录与应用工作完成分别验收。