[发明专利]一种基于单线程并发多定时器应用管理方法有效
申请号: | 201711145973.4 | 申请日: | 2017-11-17 |
公开(公告)号: | CN107870812B | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 经玉健;朱恩云;王惠;吴小俊 | 申请(专利权)人: | 南京国电南自轨道交通工程有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 线程 并发 定时器 应用 管理 方法 | ||
1.一种基于单线程并发多定时器应用管理方法,使用可变时间片单元定时器进行管理,使用一个时间片序列Sequencet来存放每次循环检测等待的时间间隔,对于Sequencet中每一个等待时间ti,都对应一个或多个定时器满足时间条件,直到Sequencet中所有时间片走完,定时器管理单元停止工作,让出系统资源,直到有新的时间片值加入Sequencet中;其特征在于:
某一时刻T1系统中有多个等待返回结果的命令,其剩余等待时间分别对应是t1、t2、t3…,则Sequencet中依次存放多个时间长度{t1,t2-t1,t3-t2,t4-t3,…},Sequencet的每一个元素对应一个命令;
从T1时刻走到T2时刻Wait t1,定时器管理模块取得超时命令C1,执行C1.TimeoutHandler,此时时间片序列Sequencet中还剩下其余时间片值{t2-t1,t3-t2,t4-t3,…}
从T2时刻走到T3时刻Wait t2-t1,定时器管理模块取得超时命令C2,执行C2.TimeoutHandler,此时Sequencet中还剩下{t3-t2,t4-t3,…}
接着等待从T3时刻走到T4时刻Wait t3-t2,定时器管理模块取得超时命令C3,处理C3.TimeoutHandler,此时Sequencet中还剩下{t4-t3,…}
依次类推;
直至Sequencet为空,定时器管理模块停止工作,等待新的时间片被加入到Sequencet中。
2.根据权利要求1所述的基于单线程并发多定时器应用管理方法,其特征在于:
T1时刻,系统控制命令Cn被下达,其控制等待时间为tn;Cn开始计时后,需要将tn加入Sequencet统一管理,首先比较tn与t1的大小,如果tnt1,则tn代替t1成为Sequencet新的首元素,Sequencet变为{tn,t1-tn,t2-t1,t3-t2,…},定时器管理单元重新开始工作,首先读取tn作为等待时间片,等tn时间到后,先处理Cn.TimeoutHandler,然后是t1-tn…;如果tnt1,则比较tn-t1与t2-t1的大小,如果tn-t1=t2-t1,则在T2时间点前插入Tn时间点,Sequencet变为{t1,tn-t1,t2-tn,t3-t2},如果tn-t1t2-t1,则继续比较tn-t2与t3-t2的大小,…,依次类推,将Tn插入到合适的位置上,保证Sequencet按照正确的时间顺序执行。
3.根据权利要求1所述的基于单线程并发多定时器应用管理方法,其特征在于:
当某个控制命令Cn在等待返回时间内收到了控制反馈结果,则定时需要及时取消,也就是需要把关于该命令的时间片从序列中删除,先遍历时间片序列Sequencet,找到对应的时间片元素,删除它,将后续时间片往前移一位,并加上删除的时间值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京国电南自轨道交通工程有限公司,未经南京国电南自轨道交通工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711145973.4/1.html,转载请声明来源钻瓜专利网。