进程间通信方法、系统、设备及介质技术方案

技术编号:38130837 阅读:9 留言:0更新日期:2023-07-08 09:38
本申请公开了一种进程间通信方法、系统、设备及介质,属于进程间通信技术领域。只要进程在消息总线上完成注册、将进程的消息集线器标识保存至消息集线器列表中,便可以既作为接收端进程监听执行器标识对应的消息,实现数据的接收;也可以作为发送端进程通过指定消息集线器标识和执行器标识并携带消息参数,实现数据的发送。在本申请中,提供了一种基于多路消息总线分发机制的进程间通信方案。支持指定进程发送消息,同时支持基于消息总线的进程注册机制,将发送消息进程与接收消息进程解耦,即使在只有发送消息进程注册时,也不会因为没有接收消息进程注册而导致进程崩溃的问题。接收消息进程注册而导致进程崩溃的问题。接收消息进程注册而导致进程崩溃的问题。

【技术实现步骤摘要】
进程间通信方法、系统、设备及介质


[0001]本申请涉及进程间通信
,尤其涉及一种进程间通信方法、进程间通信系统、进程间通信设备及计算机可读存储介质。

技术介绍

[0002]Linux平台中进程间通信(IPC)主要用于进程的调度、进程间资源的共享以及数据的传递。基于以上进程间通信的需求,Linux平台为开发者提供了基于原语的解决方案。这些解决方案中的方法主要包括:信号,管道,命名管道,socket(套接字),信号量,共享内存以及消息队列。
[0003]在进程间进行简单的数据传递及事件通知时,一般采用事件回调的通信机制。基于事件回调的通信机制实现进程间通信的方式,简单且易于实现。但在具体应用事件回调进行进程间通信时,会存在调用Callback Object(回调对象)为空指针的异常问题,导致调用进程崩溃,从而影响调用进程的正常功能。

技术实现思路

[0004]本申请的主要目的在于提供一种进程间通信方法、进程间通信系统、进程间通信设备及计算机可读存储介质,旨在解决现有技术中由于没有接收消息进程而导致进程崩溃的技术问题。
[0005]为实现上述目的,本申请提供一种进程间通信方法,所述方法应用于发送端进程,包括:创建消息,通过公开共享的消息集线器列表指定接收端进程的消息集线器标识,通过公开共享的执行器列表指定所述接收端进程的执行器标识,并指定携带的消息参数,得到目标消息;通过消息集线器将所述目标消息上传至消息总线,通过所述消息总线将所述目标消息转发至接收端进程。
[0006]在一实施例中,所述方法还包括:若在所述目标消息中指定多个所述消息集线器标识,则通过所述消息总线将所述目标消息转发至多个所述消息集线器标识对应的多个接收端进程;若在所述目标消息中未指定所述消息集线器标识,则通过所述消息总线将所述目标消息转发至消息集线器列表对应的所有接收端进程。
[0007]为实现上述目的,本申请提供一种进程间通信方法,所述方法应用于消息总线,包括:接收发送端进程通过消息集线器上传的目标消息,并解析所述目标消息得到接收端进程的消息集线器标识;遍历公开共享的消息集线器列表,确定所述消息集线器标识对应的接收端进程的目标消息集线器,并下发所述目标消息至所述目标消息集线器。
[0008]在一实施例中,所述接收发送端进程通过消息集线器上传的目标消息的步骤之前,还包括:接收各进程通过消息集线器上传的所述消息集线器的消息集线器标识,在消息集线器列表中保存所述消息集线器标识,并将所述消息集线器列表进行公开共享。
[0009]在一实施例中,所述遍历公开共享的消息集线器列表的步骤之后,还包括:若在所述消息集线器列表中未查找到所述消息集线器标识对应的接收端进程的目标消息集线器,则等待具有所述消息集线器标识的目标接收端进程被创建,在接收所述目标接收端进程上传的所述消息集线器标识并保存至所述消息集线器列表之后,执行所述遍历公开共享的消息集线器列表的步骤。
[0010]为实现上述目的,本申请提供一种进程间通信方法,所述方法应用于接收端进程,包括:通过消息集线器接收消息总线下发的目标消息,并解析所述目标消息得到执行器标识和消息参数;通过执行器列表确定所述执行器标识对应的目标执行器,并调用所述目标执行器处理所述消息参数。
[0011]在一实施例中,所述通过消息集线器接收消息总线下发的目标消息的步骤之前,还包括:通过消息集线器将所述消息集线器的消息集线器标识上传至消息总线,使所述消息总线在消息集线器列表中保存所述消息集线器的所述消息集线器标识。
[0012]在一实施例中,所述通过消息集线器接收消息总线下发的目标消息的步骤之前,还包括:根据执行器待监听的发送端进程发送的消息确定所述执行器的执行器标识;将执行器的所述执行器标识保存至执行器列表,并将所述执行器列表进行公开共享。
[0013]本申请还提供一种进程间通信系统,所述系统包括:实现如上所述进程间通信方法的发送端进程;实现如上所述进程间通信方法的消息总线;实现如上所述进程间通信方法的接收端进程。
[0014]本申请还提供一种进程间通信设备,所述进程间通信设备包括:存储器、处理器、及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的进程间通信方法的步骤。
[0015]本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述进程间通信方法的步骤。
[0016]本申请公开了一种进程间通信方法、进程间通信系统、进程间通信设备及计算机可读存储介质,在发送端进程,创建消息,通过公开共享的消息集线器列表指定接收端进程的消息集线器标识,通过公开共享的执行器列表指定所述接收端进程的执行器标识,并指定携带的消息参数,得到目标消息;通过消息集线器将所述目标消息上传至消息总线,通过所述消息总线将所述目标消息转发至接收端进程。在消息总线,接收发送端进程通过消息集线器上传的目标消息,并解析所述目标消息得到接收端进程的消息集线器标识;遍历公
开共享的消息集线器列表,确定所述消息集线器标识对应的接收端进程的目标消息集线器,并下发所述目标消息至所述目标消息集线器。在接收端进程,通过消息集线器接收消息总线下发的目标消息,并解析所述目标消息得到执行器标识和消息参数;通过执行器列表确定所述执行器标识对应的目标执行器,并调用所述目标执行器处理所述消息参数。
[0017]在本申请中,在发送端进程,通过指定消息集线器标识和执行器标识,并携带消息参数从而得到目标消息;再通过消息总线将目标消息转发至接收端进程。在消息总线,解析从发送端进程接收到的目标消息得到接收端进程的消息集线器标识,确定消息集线器标识对应的接收端进程,并下发目标消息至目标消息集线器。在接收端进程,解析消息总线下发的目标消息,得到执行器标识和消息参数;再确定执行器标识对应的目标执行器,并调用目标执行器处理消息参数。
[0018]在本申请中,只要进程在消息总线上完成注册、将进程的消息集线器标识保存至消息集线器列表中,便可以既作为接收端进程监听执行器标识对应的消息,实现数据的接收;也可以作为发送端进程通过指定消息集线器标识和执行器标识并携带消息参数,实现数据的发送。在本申请中,提供了一种基于多路消息总线分发机制的进程间通信方案。支持指定进程发送消息,同时支持基于消息总线的进程注册机制,将发送消息进程与接收消息进程解耦,即使在只有发送消息进程注册时,也不会因为没有接收消息进程注册而导致进程崩溃的问题。
附图说明
[0019]图1是本申请实施例方案涉及的硬件运行环境的运行设备的结构示意图;图2为基于事件回调的通信机制示意图;图3为本申请实施例方案涉及的进程间通信方法一实施例的基于多路消息总线分发机制的通信模型示意图;图4为本申请实施例方案涉及的进程间通信方法一实施例的系统架构示意图;图5为本申请实施例方案涉及的进程间通信方法一实施例的流程示意图;图6为本申请实施例方案涉及的进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进程间通信方法,其特征在于,所述方法应用于发送端进程,包括:创建消息,通过公开共享的消息集线器列表指定接收端进程的消息集线器标识,通过公开共享的执行器列表指定所述接收端进程的执行器标识,并指定携带的消息参数,得到目标消息;通过消息集线器将所述目标消息上传至消息总线,通过所述消息总线将所述目标消息转发至接收端进程。2.如权利要求1所述的进程间通信方法,其特征在于,所述方法还包括:若在所述目标消息中指定多个所述消息集线器标识,则通过所述消息总线将所述目标消息转发至多个所述消息集线器标识对应的多个接收端进程;若在所述目标消息中未指定所述消息集线器标识,则通过所述消息总线将所述目标消息转发至消息集线器列表对应的所有接收端进程。3.一种进程间通信方法,其特征在于,所述方法应用于消息总线,包括:接收发送端进程通过消息集线器上传的目标消息,并解析所述目标消息得到接收端进程的消息集线器标识;遍历公开共享的消息集线器列表,确定所述消息集线器标识对应的接收端进程的目标消息集线器,并下发所述目标消息至所述目标消息集线器。4.如权利要求3所述的进程间通信方法,其特征在于,所述接收发送端进程通过消息集线器上传的目标消息的步骤之前,还包括:接收各进程通过消息集线器上传的所述消息集线器的消息集线器标识,在消息集线器列表中保存所述消息集线器标识,并将所述消息集线器列表进行公开共享。5.如权利要求3所述的进程间通信方法,其特征在于,所述遍历公开共享的消息集线器列表的步骤之后,还包括:若在所述消息集线器列表中未查找到所述消息集线器标识对应的接收端进程的目标消息集线器,则等待具有所述消息集线器标识的目标接收端进程被创建,在接收所述目标接收端进程上传的所述消息...

【专利技术属性】
技术研发人员:刘芳超
申请(专利权)人:歌尔股份有限公司
类型:发明
国别省市:

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

1