[发明专利]软件模块间通信资源的使用时间监控方法、装置及介质有效
| 申请号: | 202010915084.7 | 申请日: | 2020-09-03 |
| 公开(公告)号: | CN111813636B | 公开(公告)日: | 2021-02-23 |
| 发明(设计)人: | 张一罡;陈阳 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/34 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘新雷 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软件 模块 通信 资源 使用时间 监控 方法 装置 介质 | ||
本申请公开了一种软件模块间通信资源的使用时间监控方法、装置及计算机可读存储介质。其中,方法包括构建多个作为双向环状链表锚节点的节点结构体变量,作为消息节点且包括节点类型和状态标志的消息结构体。源模块将封装为消息结构体、状态标志为使用状态的消息发送给目标模块,并将该消息节点插入第一锚节点所在环。目标模块处理完消息后调用预先构建的回调函数释放该消息。源模块每隔预设时间触发定时任务,若双向环状链表中第N个环上存在至少一个消息节点,则按照预设延迟未释放资源规则进行处理;若第N个环上不存在消息节点,则将各环的消息节点移动至相邻的下一个环中,实现对软件模块间通信资源使用时间的有效监控,及时回收通信资源。
技术领域
本申请涉及软件研发技术领域,特别是涉及一种软件模块间通信资源的使用时间监控方法、装置及计算机可读存储介质。
背景技术
软件开发都会遵循模块化思想,也就是将软件划分成具有不同的功能或职责的多个模块,每个模块都可以独立地开发,最后组装成一个完整的软件。每个模块都相对独立且只实现软件的一个子功能,在软件研发及测试过程,每个模块都会对外提供接口以供其它模块调用,来实现模块间的交互,最终使软件能正常工作。
而模块间交互时,往往伴随着通信资源的使用和回收。通信资源的使用是指当模块A向模块B发送消息时,模块A先分配一个用于通信的消息体,这个消息体就是资源,实质上是一块内存区域,消息体中存放着模块A发送给模块B的数据。通信资源的回收是指当模块B处理完消息体中的数据后,要将消息体释放掉。这样被释放的消息体就可以用于下一次的模块间通信。
相关技术中对通信资源是否被及时回收并不作任何处理,也就是说,模块B在处理完模块A的消息体中的数据后,不会及时释放掉该消息体。而若模块A向模块B发送了大量消息,就会使用大量的资源,但是模块B一直没有将资源回收,那么模块A的通信资源就会耗尽,这样模块A将无法向模块B或其他模块发送消息,模块间的交互就无法实现,这会导致软件出现不可预计的后果,比如造成用户数据丢失等。
鉴于此,如何实现对软件模块间通信资源使用时间的监控,以便及时回收通信资源,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种软件模块间通信资源的使用时间监控方法、装置及计算机可读存储介质,可以实现对软件模块间通信资源使用时间的有效监控,从而及时回收通信资源。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种软件模块间通信资源的使用时间监控方法,应用于发送消息的源模块,包括:
预先创建多个作为双向环状链表锚节点的节点结构体变量,作为所述双向环状链表消息节点、用于表示通信资源且包括节点类型和状态标志的消息结构体,定时任务和回调函数;
当向目标模块发送封装为所述消息结构体的消息,将所述消息的状态标志设置为使用状态,同时将所述消息对应的消息节点插入至第一锚节点所在环,以使所述目标模块在处理完所述消息后调用所述回调函数释放所述消息;所述第一锚节点为按照锚节点创建时间顺序第一个被创建的节点结构体变量;
每隔预设时间触发所述定时任务;所述定时任务用于若所述双向环状链表中第N个环上存在至少一个消息节点,则按照预设延迟未释放资源规则进行处理;若所述第N个环上不存在所述消息节点,则将各环的消息节点移动至相邻的下一个环中;所述第N个环为按照锚节点创建时间顺序第N个被创建的锚节点所在环。
可选的,所述消息节点包括用于指向前一个节点的prev指针和用于指向后一个节点的next指针;所述使所述目标模块在处理完所述消息后调用所述回调函数释放所述消息包括:
在所述双向环状链表中定位所述消息对应消息节点所在环,将所述消息对应消息节点从当前所在环中取下,同时将所述消息对应消息节点的prev指针和next指针都指向节点自身;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010915084.7/2.html,转载请声明来源钻瓜专利网。





