进程间通信方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:32364945 阅读:15 留言:0更新日期:2022-02-20 03:37
本公开涉及一种进程间通信方法、装置、设备及计算机可读存储介质。本公开通过基于全局共享内存创建用于通信的共享内存,客户进程与服务进程通过标签与用于通信的共享内存建立连接,基于该用于通信的共享内存完成数据交互,大大提高了通信效率,并且客户进程与服务进程之间无需拥有血缘关系即可基于共享内存进行通信,改善了基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。了进程间通信的灵活性。了进程间通信的灵活性。

【技术实现步骤摘要】
进程间通信方法、装置、设备及计算机可读存储介质


[0001]本公开涉及计算机
,尤其涉及一种进程间通信方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]随着计算机技术的不断发展,进程间通信技术的应用越来越广泛。
[0003]通常情况下,可以通过系统接口的方式来实现进程间通信。但是,这种方式导致进程间通信会出现延迟高、响应慢的问题。因此,针对该问题,提出了通过共享内存来实现进程间通信。
[0004]但是,基于共享内存实现进程间通信的这种方式需要通信的多个进程之间具有血缘关系,例如,需要通信的两个进程之间是父子关系,从而大大限制了进程间通信。

技术实现思路

[0005]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种进程间通信方法、装置、设备及计算机可读存储介质,以改善基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。
[0006]第一方面,本公开实施例提供一种进程间通信方法,包括:
[0007]当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;
[0008]所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;
[0009]当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;
[0010]所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
[0011]第二方面,本公开实施例提供一种进程间通信装置,包括:
[0012]获取模块,用于当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;
[0013]创建模块,用于所述客户进程创建用于通信的共享内存;
[0014]记录模块,用于所述客户进程在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;
[0015]连接建立模块,用于当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;
[0016]通信模块,用于所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
[0017]第三方面,本公开实施例提供一种电子设备,包括:
[0018]存储器;
[0019]处理器;以及
[0020]计算机程序;
[0021]其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
[0022]第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
[0023]第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的进程间通信方法。
[0024]本公开实施例提供的进程间通信方法、装置、设备及计算机可读存储介质,通过基于全局共享内存创建用于通信的共享内存,客户进程与服务进程通过标签与用于通信的共享内存建立连接,基于该用于通信的共享内存完成数据交互,大大提高了通信效率,并且客户进程与服务进程之间无需拥有血缘关系即可基于共享内存进行通信,改善了基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。
附图说明
[0025]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0026]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027]图1为本公开实施例提供的进程间通信方法流程图;
[0028]图2为本公开实施例提供的一种应用场景的示意图;
[0029]图3为本公开另一实施例提供的进程间通信方法的流程图;
[0030]图4为本公开另一实施例提供的进程间通信方法的信令图;
[0031]图5为本公开实施例提供的进程间通信装置的结构示意图;
[0032]图6为本公开实施例提供的电子设备的结构示意图。
具体实施方式
[0033]为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0034]在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
[0035]在进程间通信技术中,需要有管道、消息队列、套接字等满足数据交互的需求。其中,管道的使用场景存在限制,例如需要通信双方进程具有血缘关系,套接字的使用虽然较为稳定和广泛,但延迟较高。基于系统接口实现的消息队列通信性能最差;而基于操作系统
的消息队列延迟高、响应慢,因此,提出了基于共享内存的消息队列,但这种基于共享内存的消息队列一般需要在多个有血缘关系的进程中实现,即需要通信双方进程为父子关系,大大限制了基于共享内存的消息队列的使用。针对该问题,本公开实施例提供了一种进程间通信方法,下面结合具体的实施例对该方法进行介绍。
[0036]图1为本公开实施例提供的进程间通信方法流程图。该方法可以应用于图2所示的应用场景,该应用场景中包括电子设备20,所述电子设备20内运行有至少一个客户进程21和至少一个服务进程22,电子设备20具体可以是终端,例如,智能手机、掌上电脑、平板电脑、带显示屏的可穿戴设备、台式机、笔记本电脑、一体机、智能家居设备等。需要说明的是,所述至少一个客户进程21和至少一个服务进程22必须处于同一电子设备20中。可以理解的是,本公开实施例提供的进程间通信方法还可以应用在其他场景中。
[0037]下面结合图2所示的应用场景,对图1所示的进程间通信方法进行介绍,该方法包括的具体步骤如下:
[0038]S101、当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接。
[0039]服务进程22与操作系统提供的全局共享内存建立连接,该全局共享内存的第一标识,用于表明其地址、存储容量等信息。客户进程21通过读取系统配置,获取全局共享内存的第一标识,并根据第一标识与所述全局共享内存建立连接,即客户进程21和服务进程22均与全局共享内存建立连接。
[0040]S102、所述客户进程创建用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进程间通信方法,其特征在于,应用于电子设备,所述电子设备内运行有至少一个客户进程和至少一个服务进程,所述方法包括:当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。2.根据权利要求1所述的方法,其特征在于,所述服务进程与全局共享内存建立连接后,所述方法还包括:所述服务进程在所述全局共享内存中创建第一队列和第二队列;相应的,所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识之后,所述方法还包括:所述客户进程通过所述第一队列向所述服务进程发送通知信息,所述通知信息用于提示所述服务进程遍历所述全局数组;相应的,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接之后,所述方法还包括:所述服务进程通过所述第二队列向所述客户进程发送确认信息。3.根据权利要求2所述的方法,其特征在于,所述第一队列是所述客户进程在所述全局共享内存中的发送队列,所述第一队列是所述服务进程在所述全局共享内存中的接收队列;所述第二队列是所述服务进程在所述全局共享内存中的发送队列,所述第二队列是所述客户进程在所述全局共享内存中的接收队列。4.根据权利要求1所述的方法,其特征在于,所述客户进程创建用于通信的共享内存之后,所述方法还包括:所述客户进程在所述用于通信的共享内存中创建第三队列和第四队列;相应的,所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信,包括:所述客户进程通过所述第三队列向所述服务进程发送待处理的消息;所述服务进程对所述待处理的消息进行处理,得到处理结果;所述服务进程通过所述第四队列向所述客户进程发送所述处理结果。5.根据权利要求4所述的方法,其特征在于,所述第三队列是所述客户进程在所述用于通信的共享内存中的发送队列,所述第三队列是所述服务进程在所述用于通信的共享内存中的接收队列;所述第四队列是所述服务进程在所述用于通信的共享内存中的发送队列,所述第四队列是所述客户进程在所述用于通信的共享内存中的接收队列。6.根据权利要求1所述的方法,其特征在于,所述全局共享内存包括所述用于通信的共享内存。7.一种进程间通信装置,其特征在于,所述装置设置于电子设备,所述电子设备内运行
有至少一个客户进程和至少一个服务进程...

【专利技术属性】
技术研发人员:程强杨尚
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1