[发明专利]基于共享内存的多进程间通信的方法及装置有效
| 申请号: | 202310044073.X | 申请日: | 2023-01-29 |
| 公开(公告)号: | CN115794443B | 公开(公告)日: | 2023-05-23 |
| 发明(设计)人: | 朱时宇;李勇;戚纪纲 | 申请(专利权)人: | 北京万里红科技有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 北京维正专利代理有限公司 11508 | 代理人: | 朱鹏程 |
| 地址: | 100089 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 共享 内存 进程 通信 方法 装置 | ||
1.一种基于共享内存的多进程间通信的方法,其特征在于,包括:
对通信层面模块下所有实体进行编号得到实体编号;
从通道管理器获取模块编号,利用所述模块编号和所述实体编号对每个实体对应的通道进行编号,得到通道的通道编号;其中,所述通道编号包括所述模块编号和所述实体编号;
将所述通道编号以通道注册请求的形式发送至所述通道管理器,进行与所述通道编号对应通道的注册;
接收所述通道管理器广播的通道列表;其中,所述通道列表包括每个元素为所述通道编号的二维数组,每个所述通道编号标识一个通道的地址;所述通道管理器根据所述通道注册请求更新所述二维数组中的所述通道编号和对应的地址;
利用目的通道的所述通道编号从所述通道列表中查找所述通道编号标识的地址,根据查找到的地址向所述目的通道进行读、写、删除操作。
2.根据权利要求1所述的一种基于共享内存的多进程间通信的方法,其特征在于,所述模块编号和所述实体编号从预设数值开始编号。
3.根据权利要求2所述的一种基于共享内存的多进程间通信的方法,其特征在于,所述将所述通道编号以通道注册请求的形式发送至所述通道管理器包括:
将所述通道编号中所述实体编号为预设数值的通道配置为管理通道;
通过所述管理通道向所述通道管理器发送所述通道注册请求;其中,所述通道注册请求包括除管理通道以外的所有所述通道编号。
4.根据权利要求1所述的一种基于共享内存的多进程间通信的方法,其特征在于,还包括:
当监测到退出请求时,触发向所述通道管理器发送通道注销请求,并在接收到所述通道管理器的应答时开始执行进程退出流程。
5.一种基于共享内存的多进程间通信的方法,其特征在于,包括:
对系统下所有进程的通信层面模块进行唯一编号,得到对应的模块编号,并在进程请求获取所述模块编号时发送给对应进程;
接收进程发送的通道注册请求,根据所述通道注册请求为每个通道编号分配通道的数据存储空间,并利用所述通道注册请求中对应的通道编号标识所述数据存储空间的地址;
将所述通道编号添加至二维数组中,更新通道列表的所述二维数组和所述数据存储空间的地址,并将所述通道列表广播给系统中在线的进程。
6.根据权利要求5所述的一种基于共享内存的多进程间通信的方法,其特征在于,通过管理通道向在线的进程广播所有消息;所述管理通道为进程的通道编号中实体编号为预设数值的通道。
7.根据权利要求5所述的一种基于共享内存的多进程间通信的方法,其特征在于,还包括:
当接收进程发送的通道注销请求时,向发送所述通道注销请求的进程返回应答,并将与发送所述通道注销请求的所述进程相关的所有通道编号从所述通道列表中删除或在所述通道列表中标识为下线;
将更新后的所述通道列表广播至系统中所有在线进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京万里红科技有限公司,未经北京万里红科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310044073.X/1.html,转载请声明来源钻瓜专利网。





