[发明专利]软件模块间通信资源的使用时间监控方法、装置及介质有效
| 申请号: | 202010915084.7 | 申请日: | 2020-09-03 |
| 公开(公告)号: | CN111813636B | 公开(公告)日: | 2021-02-23 |
| 发明(设计)人: | 张一罡;陈阳 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/34 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘新雷 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软件 模块 通信 资源 使用时间 监控 方法 装置 介质 | ||
1.一种软件模块间通信资源的使用时间监控方法,其特征在于,应用于发送消息的源模块,包括:
预先创建多个节点结构体变量,多个消息结构体,定时任务和回调函数;节点结构体变量作为双向环状链表的锚节点;消息结构体作为所述双向环状链表的消息节点、用于表示通信资源且包括节点类型和状态标志;
当向目标模块发送封装为所述消息结构体的消息,将所述消息的状态标志设置为使用状态,同时将所述消息对应的消息节点插入至第一锚节点所在环,以使所述目标模块在处理完所述消息后调用所述回调函数释放所述消息;所述第一锚节点为按照锚节点创建时间顺序第一个被创建的节点结构体变量;
每隔预设时间触发所述定时任务;所述定时任务用于若所述双向环状链表中第N个环上存在至少一个消息节点,则按照预设延迟未释放资源规则进行处理;若所述第N个环上不存在所述消息节点,则将各环的消息节点移动至相邻的下一个环中;所述第N个环为按照锚节点创建时间顺序第N个被创建的锚节点所在环;
其中,所述按照预设延迟未释放资源规则进行处理包括:
若所述双向环状链表中第N个环上存在至少一个消息节点,则将第N个环上所有消息节点对应的消息进行强制释放或记录错误信息至日志中或发出延迟未释放资源告警;
所述消息节点包括用于指向前一个节点的prev指针和用于指向后一个节点的next指针;所述使所述目标模块在处理完所述消息后调用所述回调函数释放所述消息包括:
在所述双向环状链表中定位所述消息对应消息节点所在环,将所述消息对应消息节点从当前所在环中取下,同时将所述消息对应消息节点的prev指针和next指针都指向节点自身;
将所述消息的状态标志设置为未使用状态,以被源节点用于发送下一个消息。
2.根据权利要求1所述的软件模块间通信资源的使用时间监控方法,其特征在于,所述每隔预设时间触发所述定时任务还包括:
获取预先设置的通信资源最大占用时间;
根据所述通信资源最大占用时间确定所述双向环状链表的监测环;
当检测到达所述定时任务被触发时间,则触发携带所述监测环信息的定时任务;
其中,所述双向环状链表中环总数基于所述通信资源最大占用时间确定,所述监测环为按照锚节点创建时间顺序最后一个被创建的锚节点所在环。
3.根据权利要求2所述的软件模块间通信资源的使用时间监控方法,其特征在于,所述消息节点包括用于指向前一个节点的prev指针和用于指向后一个节点的next指针,所述锚节点包括用于指向前一个消息节点的prev指针和用于指向后一个消息节点的next指针;所述定时任务用于检测所述双向环状链表的第N个环上是否存在非锚节点的任何一个消息节点,所述检测所述双向环状链表的第N个环上是否存在非锚节点的任何一个消息节点包括:
判断所述第N个环中所有节点的prev指针和next指针是否均指向自身;
若是,则所述第N个环中只有锚节点;若否,则所述第N个环中存在至少一个消息节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010915084.7/1.html,转载请声明来源钻瓜专利网。





