[发明专利]多对多的进程通信方法及计算机可读存储介质在审
申请号: | 201910428219.4 | 申请日: | 2019-05-22 |
公开(公告)号: | CN111984430A | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 何展然;姚亮;施正;牟韵文;黄睿欣 | 申请(专利权)人: | 厦门雅迅网络股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 深圳市博锐专利事务所 44275 | 代理人: | 林栋 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 通信 方法 计算机 可读 存储 介质 | ||
本发明公开了一种多对多的进程通信方法及计算机可读存储介质,方法包括:创建索引共享内存,并分别为每个进程创建一一对应的数据共享内存;创建进程与其对应的数据共享内存的映射关系,并将所述映射关系存储至所述索引共享内存;当第一进程要向第二进程通信时,第一进程在所述索引共享内存中查找所述第二进程对应的数据共享内存,并将通信数据写入所述对应的数据共享内存中;第二进程从其对应的数据共享内存获取所述通信数据。本发明可解决多个进程之间任意两个进程无法直接进行通信的问题和共享内存区域控制权无法及时释放问题。
技术领域
本发明涉及进程通信技术领域,尤其涉及一种多对多的进程通信方法及计算机可读存储介质。
背景技术
进程是计算机系统进行资源分配和调度的基本单位,可以把进程看作正在运行的程序。像Linux这样的多任务操作系统可以同时运行多个程序,每个运行着的程序实例就构成了一个进程。随着不同场景平台不断增大的软件应用需求,多进程程序相比单进程应用更能满足许多特定场合的用户需求。
由于不同进程运行在各自不同的内存空间中,一方对于变量的修改另一方是无法感知的,因此,进程间的信息传递不可能通过变量或其他数据结构直接进行,只能通过进程间通信来完成。现有计算机技术提供了若干种机制用于进程间通信,例如:管道、消息队列、Socket等。对于同主机进程间通信的应用场景,基于共享内存的通信机制具有传输数据量大、速度快的特点。
目前基于共享内存的进程间通信方式有很多种设计,它们在凸显自身设计上优势时,至少存在了以下问题:
1、只支持1对1或1对多的进程间通信,多个(大于2个)进程之间任意两个进程无法直接进行通信,或者需要依赖于中间件模块,无法点对点直接连接;
2、共享内存区域在读写时会由于一些开销大的业务逻辑操作造成阻塞等待,无法及时释放控制权。
发明内容
本发明所要解决的技术问题是:提供一种多对多的进程通信方法及计算机可读存储介质,解决了多个进程之间任意两个进程无法直接进行通信的问题和共享内存区域控制权无法及时释放问题。
为了解决上述技术问题,本发明采用的技术方案为:一种多对多的进程通信方法,包括:
创建索引共享内存,并分别为每个进程创建一一对应的数据共享内存;
创建进程与其对应的数据共享内存的映射关系,并将所述映射关系存储至所述索引共享内存;
当第一进程要向第二进程通信时,第一进程在所述索引共享内存中查找所述第二进程对应的数据共享内存,并将通信数据写入所述对应的数据共享内存中;
第二进程从其对应的数据共享内存获取所述通信数据。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
创建索引共享内存,并分别为每个进程创建一一对应的数据共享内存;
创建进程与其对应的数据共享内存的映射关系,并将所述映射关系存储至所述索引共享内存;
当第一进程要向第二进程通信时,第一进程在所述索引共享内存中查找所述第二进程对应的数据共享内存,并将通信数据写入所述对应的数据共享内存中;
第二进程从其对应的数据共享内存获取所述通信数据。
本发明的有益效果在于:通过为每个进程都创建了其独立使用的数据共享内存,并在索引共享内存中创建进程与其数据共享内存的映射关系,使得多进程相互之间通信可不需要经过其他中间件模块,两两进程之间可以直接点到点通信,从而较大程度地避免对同一数据共享内存的操作等待,提高进程间通信的时间效率。本发明可解决多个进程之间任意两个进程无法直接进行通信的问题和共享内存区域控制权无法及时释放问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门雅迅网络股份有限公司,未经厦门雅迅网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910428219.4/2.html,转载请声明来源钻瓜专利网。