CN110928703B - 多进程通讯注册方法和装置 - Google Patents

多进程通讯注册方法和装置 Download PDF

Info

Publication number
CN110928703B
CN110928703B CN201811100669.2A CN201811100669A CN110928703B CN 110928703 B CN110928703 B CN 110928703B CN 201811100669 A CN201811100669 A CN 201811100669A CN 110928703 B CN110928703 B CN 110928703B
Authority
CN
China
Prior art keywords
message
registration
server
registration message
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811100669.2A
Other languages
English (en)
Other versions
CN110928703A (zh
Inventor
赵冉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ingenic Semiconductor Co Ltd
Original Assignee
Beijing Ingenic Semiconductor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ingenic Semiconductor Co Ltd filed Critical Beijing Ingenic Semiconductor Co Ltd
Priority to CN201811100669.2A priority Critical patent/CN110928703B/zh
Publication of CN110928703A publication Critical patent/CN110928703A/zh
Application granted granted Critical
Publication of CN110928703B publication Critical patent/CN110928703B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种多进程通讯注册方法和装置,其中,该方法包括:进程启动后,创建共享内存;所述进程主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;所述进程接收所述查询消息;所述进程响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进程进行注册。通过上述方案,因为进程可以主动广播注册消息以触发注册,从而使得在有新进程的情况下,可以及时加入到多进程通讯系统中进行消息通讯,达到了实时高效进行多进程通讯的技术效果。

Description

多进程通讯注册方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种多进程通讯注册方法和装置。
背景技术
进程间通信是指在不同进程之间传播或交换信息,常用的进程间通信方式有:管道、消息队列、信号量、共享内存、socket。
其中,管道分为:无名管道和命名管道,无名管道只能用于具有亲缘关系的进程之间的通信,命名管道可以在无关的进程之间交换数据,但是命名管道只能承载无格式字节流,在数据读出时清除管道的数据。消息队列可以完成多个进程间消息传递工作,但是效率低,实时性差。信号量用于进程间同步,如果需要在进程间传递数据,就需要结合共享内存。共享内存指两个或多个进程共享一个给定的存储区,由于进程直接对内存进行存取,因此速度较快效率较高,然后,由于多个进程可同时操作一块内存,因此需要进行同步。Socket是一种面相网络的进程间通信方式,不仅能实现本地同一台计算机内部的进程间通信还可以实现不同主机上进程的通信。
最直接的多进程消息通讯方法是分别在需要通信的两个进程间建立一对一的通信,这样浪费资源,不利于统一管理。常用的多进程消息通讯使用socket实现,但消息传输速度慢,实时性不好。
针对如何高效实时地进行多进程消息通讯,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种多进程通讯注册方法和装置,以达到高效完成进程注册的技术效果。
本发明实施例提供了一种多进程通讯注册方法,包括:
进程启动后,创建共享内存;
所述进程主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;
所述进程接收所述查询消息;
所述进程响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进程进行注册。
在一个实施方式中,所述进程广播注册消息并等待接收服务端消息之后,所述方法还包括:
通过所述共享内存所创建出的控制总线确定所述注册消息是否需要回复;
在确定需要回复的情况下,在特定的内存位置存储所述注册消息。
在一个实施方式中,所述进程广播注册消息并等待接收服务端消息之后,所述方法还包括:
通过所述共享内存所创建出的控制总线确定所述注册消息是否需要进程回复;
在确定不需要回复的情况下,以ringbuffer的方式依次排列所述注册消息。
在一个实施方式中,所述进程广播注册消息并等待接收服务端消息,包括:
在所述注册消息中添加头信息,其中,所述头信息用于指示该注册消息为广播消息;
将添加了头信息的查询消息发送出去。
本发明实施例还提供了一种多进程通讯注册装置,位于进程中,包括:
创建模块,用于在进程启动后,创建共享内存;
第一广播模块,用于主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;
接收模块,用于接收所述查询消息;
第二广播模块,用于响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进行进程进行注册。
在一个实施方式中,上述多进程通讯注册装置还包括:
第一确定模块,用于在所述进程广播注册消息并等待接收服务端消息之后,通过所述共享内存所创建出的控制总线确定所述注册消息是否需要回复;
存储模块,用于在确定需要回复的情况下,在特定的内存位置存储所述注册消息。
在一个实施方式中,上述多进程通讯注册装置还包括:
第二确定模块,用于在所述进程广播注册消息并等待接收服务端消息之后,通过所述共享内存所创建出的控制总线确定所述注册消息是否需要进程回复;
排列模块,用于在确定不需要回复的情况下,以ringbuffer的方式依次排列所述注册消息。
在一个实施方式中,第一广播模块包括:添加单元,用于在所述注册消息中添加头信息,其中,所述头信息用于指示该注册消息为广播消息;发送单元,用于将添加了头信息的查询消息发送出去。
在本发明实施例中,在进程先启动后,创建共享内存,进程主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;进程接收所述查询消息之后,广播注册消息,以使得服务端响应于注册消息对进程进行注册。通过上述方案,因为进程可以主动广播注册消息以触发注册,从而使得在有新进程的情况下,可以及时加入到多进程通讯系统中进行消息通讯,达到了实时高效进行多进程通讯的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是根据本发明实施例的多进程消息通讯系统的架构示意图;
图2是根据本发明实施例的多进程消息通讯方法流程图;
图3是根据本发明实施例的多进程通讯注册方法流程图;
图4是根据本发明实施例的通讯注册方法流程图;
图5是根据本发明实施例的多进程通讯注册装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
为了更好地说明本申请,下面对涉及到的几个术语解释如下:
1)IPCMessage:是用share memory实现的一种消息通讯机制;
2)Client:每一个映射共享内存的进程称为一个client;
3)ClientInterface:提供对Client操作的方法;
4)ringbuffer:环形buffer,消息从buffer起始位置依次向后排列,当buffer排满后回到起始位置继续存放。
考虑到现有的多进程消息通讯是使用socket实现的,消息传输受网络条件影响,速度较慢,对于一些实时性要求高的使用场景无法满足要求。为此,在本例中,利用共享内存速度快、效率高的优点,结合多个进程间消息可以灵活快速传递的需求,提出了一种高效的多进程消息通讯机制,从而在提高效率的同时可以节省资源,达到了提升多进程间消息传输速度和消息传递灵活性的技术效果。
如图1所示,在本例中提供了一种多进程消息通讯系统,可以包括:共享内存10,所述共享内存10被划分为第一控制总线101和第二控制总线102,其中:
所述第一控制总线101用于服务端103主动发送控制消息给所有的进程104并接收进程回复的消息;
所述第二控制总线102用于进程主动发送消息至服务端和其它进程。
对于需要立即回复结果的消息,为了提高响应时间,可以设置一个特定的内存位置存放,以提高响应时间。例如,第一控制总线可以设置有特定的内存位置,其中,所述内存位置用于存放需要立即回复结果的消息。
在一条总线上,对于只需要对方Client接收不需要回复的消息(例如:同时有多个消息发送时)消息以ringbuffer的方式依次排列,消息保留的时间与共享内存大小有关。例如,第一控制总线可以设置有ringbuffer模式,其中,在进程不需要回复消息的情况下,服务端的消息按照ringbuffer模式依次排列。
同样的,对于第二控制总线,也可以按照第一控制总线的方式进行设置。即,第二控制总线可以设置有ringbuffer模式,其中,在位于接收端的进程不需要回复消息的情况下,位于发送端的进程的消息按照ringbuffer模式依次排列。
对于控制总线而言,server端和client端两部分控制,server端用于管理注册client列表,为每个client分配ClientInterface接口。client端用于实现ClientInterface接口,配合server注册client。具体的,第一控制总线包括可以服务方控制模块和进程方控制模块,其中,所述服务方控制模块用于管理注册进程列表,并为每个进程分配进程接入接口,所述进程方控制模块用于实现进程接入接口。同样的,所述第二控制总线可以包括服务方控制模块和进程方控制模块,其中,所述服务方控制模块用于管理注册进程列表,并为每个进程分配进程接入接口,所述进程方控制模块用于实现进程接入接口。
基于上述的多进程通讯系统,在本例中还提供了一种多进程通讯方法,如图2所示,可以包括如下步骤:
步骤201:控制总线接收进程发送的消息;
步骤202:控制总线为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;
步骤203:控制总线将添加了头信息的消息发送出去。
在上述步骤203控制总线将添加了头信息的消息发送出去之后,控制总线可以确定消息是否需要回复;在确定所述消息需要回复的情况下,在控制总线上设置一个特定的内存位置;通过该特定的内存位置,存储所述消息。
在控制总线将添加了头信息的消息发送出去之后,进程可以接收添加了头信息的消息;进程提取所述头信息中的接收消息的进程的ID;将接收消息的进程的ID与自身的ID进行对比;如果相同,则处理该添加了头信息的消息。即,对于接收方进程而言,可以通过头信息中的进程ID确定接收到的消息自己是否需要处理,如果需要处理,就处理,如果不需要处理,就舍弃。
在实际实现的时候,不仅头信息中指示需要自己处理的消息是需要处理的,对于头信息表明该消息是广播消息的消息,也是接收方进程需要处理的。即,在将接收消息的进程的ID与自身的ID进行对比之后,可以确定接收消息的进程的ID是否标识该消息为广播消息;在确定为广播消息的情况下,处理该添加了头信息的消息。
上述控制总线可以分为第一控制总线和第二控制总线,其中,所述第一控制总线用于服务端主动发送控制消息给所有的进程并接收进程回复的消息;所述第二控制总线用于进程主动发送消息至服务端和其它进程。具体的,可以将一块共享内存分为两个部分分别作为两条总线,一条总线用于server主动发送控制消息给所有client及client回复消息,另一条总线用于client主动发送消息给server和其他client,以此来实现server和client的同时双向通讯,从而保证控制的实时性。
因为是进程多进程之间的通讯,是将服务端和进程都接入到同一通讯系统的,因此,就涉及到通讯注册的问题,为了使得每个进程都可以及时注册。在本例中,提出了基于服务端优先启动的注册方式和基于进程优先启动的注册方式,下面对这两种注册方式说明如下:
1)基于服务端优先启动的注册方式,如图3所示,可以包括如下步骤:
步骤301:服务端启动后,创建共享内存;
步骤302:所述服务端向进程广播查询消息并等待进程回复,其中,在进程启动后,映射共享内存,并广播注册消息;
步骤303:所述服务端接收所述注册消息;
步骤304:所述服务端响应于所述注册信息,对进程进行注册并回复确认消息。
具体的,在服务端向进程广播查询消息并等待进程回复之后,可以通过共享内存所创建出的控制总线确定所述查询消息是否需要进程回复;在确定需要回复的情况下,在特定的内存位置存储所述查询消息。
在服务端向进程广播查询消息并等待进程回复之后,可以通过所述共享内存所创建出的控制总线确定所述查询消息是否需要进程回复;在确定不需要回复的情况下,以ringbuffer的方式依次排列所述查询消息。
即,对于需要回复和不需要回复的消息采用不同的处理方式。
上述步骤302服务端向进程广播查询消息并等待进程回复,可以包括:服务端在所述查询消息中添加头信息,其中,所述头信息用于指示该消息为广播消息;服务端将添加了头信息的查询消息发送出去。
2)基于进程优先启动的注册方式,如图4所示,可以包括如下步骤:
步骤401:进程启动后,创建共享内存;
步骤402:进程主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;
步骤403:进程接收所述查询消息;
步骤404:进程响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进行进程进行注册。
具体的,在进程广播注册消息并等待接收服务端消息之后,可以通过共享内存所创建出的控制总线确定所述注册消息是否需要回复;在确定需要回复的情况下,在特定的内存位置存储所述注册消息。
在进程广播注册消息并等待接收服务端消息之后,可以通过所述共享内存所创建出的控制总线确定所述注册消息是否需要进程回复;在确定不需要回复的情况下,以ringbuffer的方式依次排列所述注册消息。
上述步骤402进程广播注册消息并等待接收服务端消息,可以包括:在所述注册消息中添加头信息,其中,所述头信息用于指示该注册消息为广播消息;将添加了头信息的查询消息发送出去。
下面结合一个具体实施例对上述多进程通讯方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
在本例中,将IPCMessage看做是控制总线,总线上的每个client都可以和任意一个client通讯,也可以广播给所有client。IPCMessage为每一个client分配唯一的id,并给消息添加头信息指定发送和接收消息进程的id,也可以指定广播id将消息发送给所有进程。
一个进程在发送消息后,通过信号量通知其他进程,其他进程接收消息对比是否与自己的id相同,如果id相同或是广播id,那么就处理该消息,否则忽略该消息。
其中,IPCMessage可以包括:server端和client端两部分控制,server端用于管理注册client列表,为每个client分配ClientInterface接口。client端用于实现ClientInterface接口,配合server注册client。
首先,将一块共享内存分为两个部分分别作为两条总线,一条总线用于server主动发送控制消息给所有client及client回复消息,另一条总线用于client主动发送消息给server和其他client,以此来实现server和client的同时双向通讯,从而保证控制的实时性。
在一条总线上,对于只需要对方Client接收不需要回复的消息(例如:同时有多个消息发送时)消息以ringbuffer的方式依次排列,消息保留的时间与共享内存大小有关。对于需要立即回复结果的消息,可以设置一个特定的内存位置存放,以提高响应时间。
其中,server和client的协商过程为:
1)如果server端先启动,那么创建共享内存,广播查询client消息并等待client回复,client启动后,映射共享内存,广播注册client消息,server注册client并回复确认消息。
2)如果client端先启动,那么创建共享内存,广播注册client消息,等待接收server端消息,server端启动后映射共享内存,广播查询client消息,client收到后广播注册client消息,server注册client并回复确认消息。
3)如果有新client加入,client主动广播注册client消息,server注册client并回复确认消息。
在上例中,将总线和共享内存结合,提高了多进程消息的通讯效率和通讯灵活性。具体的,通过两条总线实现client和server的全双工通信,保证了添加新client等控制的实时性,通过ringbuffer解决了一条总线上的消息多发问题,通过在一条总线的固定位置存放需要及时回复的消息,提高了响应速度。
基于同一发明构思,本发明实施例中还提供了一种多进程通讯注册装置,如下面的实施例所述。由于多进程通讯注册装置解决问题的原理与多进程通讯注册方法相似,因此多进程通讯注册装置的实施可以参见多进程通讯注册方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图5是本发明实施例的多进程通讯注册装置的一种结构框图,位于进程中,如图5所示,可以包括:创建模块501、第一广播模块502、接收模块503和第二广播模块504,下面对该结构进行说明。
创建模块501,用于在进程启动后,创建共享内存;
第一广播模块502,用于主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;
接收模块503,用于接收所述查询消息;
第二广播模块504,用于响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进程进行注册。
在一个实施方式中,上述多进程通讯注册装置还可以包括:第一确定模块,用于在所述进程广播注册消息并等待接收服务端消息之后,通过所述共享内存所创建出的控制总线确定所述注册消息是否需要回复;存储模块,用于在确定需要回复的情况下,在特定的内存位置存储所述注册消息。
在一个实施方式中,上述多进程通讯注册装置还可以包括:第二确定模块,用于在所述进程广播注册消息并等待接收服务端消息之后,通过所述共享内存所创建出的控制总线确定所述注册消息是否需要进程回复;排列模块,用于在确定不需要回复的情况下,以ringbuffer的方式依次排列所述注册消息。
在一个实施方式中,第一广播模块502可以包括:添加单元,用于在所述注册消息中添加头信息,其中,所述头信息用于指示该注册消息为广播消息;发送单元,用于将添加了头信息的查询消息发送出去。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
从以上的描述中,可以看出,本发明实施例实现了如下技术效果:在进程先启动后,创建共享内存,进程主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;进程接收所述查询消息之后,广播注册消息,以使得服务端响应于注册消息对进程进行注册。通过上述方案,因为进程可以主动广播注册消息以触发注册,从而使得在有新进程的情况下,可以及时加入到多进程通讯系统中进行消息通讯,达到了实时高效进行多进程通讯的技术效果。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

Claims (10)

1.一种多进程通讯注册方法,其特征在于,包括:
进程启动后,创建共享内存;
所述进程主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;
所述进程接收所述查询消息;
所述进程响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进程进行注册。
2.根据权利要求1所述的方法,其特征在于,所述进程广播注册消息并等待接收服务端消息之后,所述方法还包括:
通过所述共享内存所创建出的控制总线确定所述注册消息是否需要回复;
在确定需要回复的情况下,在特定的内存位置存储所述注册消息。
3.根据权利要求1所述的方法,其特征在于,所述进程广播注册消息并等待接收服务端消息之后,所述方法还包括:
通过所述共享内存所创建出的控制总线确定所述注册消息是否需要进程回复;
在确定不需要回复的情况下,以ringbuffer的方式依次排列所述注册消息。
4.根据权利要求1所述的方法,其特征在于,所述进程广播注册消息并等待接收服务端消息,包括:
在所述注册消息中添加头信息,其中,所述头信息用于指示该注册消息为广播消息;
将添加了头信息的查询消息发送出去。
5.一种多进程通讯注册装置,其特征在于,位于进程中,包括:
创建模块,用于在进程启动后,创建共享内存;
第一广播模块,用于主动广播注册消息并等待接收服务端消息,其中,服务端启动后,映射所述共享内存,广播查询消息;
接收模块,用于接收所述查询消息;
第二广播模块,用于响应于所述查询消息,广播注册消息,其中,所述服务端响应于所述注册消息对所述进程进行注册。
6.根据权利要求5所述的装置,其特征在于,还包括:
第一确定模块,用于在所述进程广播注册消息并等待接收服务端消息之后,通过所述共享内存所创建出的控制总线确定所述注册消息是否需要回复;
存储模块,用于在确定需要回复的情况下,在特定的内存位置存储所述注册消息。
7.根据权利要求5所述的装置,其特征在于,还包括:
第二确定模块,用于在所述进程广播注册消息并等待接收服务端消息之后,通过所述共享内存所创建出的控制总线确定所述注册消息是否需要进程回复;
排列模块,用于在确定不需要回复的情况下,以ringbuffer的方式依次排列所述注册消息。
8.根据权利要求5所述的装置,其特征在于,所述第一广播模块包括:
添加单元,用于在所述注册消息中添加头信息,其中,所述头信息用于指示该注册消息为广播消息;
发送单元,用于将添加了头信息的查询消息发送出去。
9.一种终端设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至4中任一项所述方法的步骤。
CN201811100669.2A 2018-09-20 2018-09-20 多进程通讯注册方法和装置 Active CN110928703B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811100669.2A CN110928703B (zh) 2018-09-20 2018-09-20 多进程通讯注册方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811100669.2A CN110928703B (zh) 2018-09-20 2018-09-20 多进程通讯注册方法和装置

Publications (2)

Publication Number Publication Date
CN110928703A CN110928703A (zh) 2020-03-27
CN110928703B true CN110928703B (zh) 2023-02-21

Family

ID=69856309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811100669.2A Active CN110928703B (zh) 2018-09-20 2018-09-20 多进程通讯注册方法和装置

Country Status (1)

Country Link
CN (1) CN110928703B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5801690A (en) * 1995-03-24 1998-09-01 Motorola, Inc. Method for managing termination of a multi-processing software application
CN103455380A (zh) * 2012-06-05 2013-12-18 上海斐讯数据通信技术有限公司 多进程通信系统及其建立和通信方法
CN105138402A (zh) * 2015-08-25 2015-12-09 海信集团有限公司 一种应用进程内存释放的优先级调整方法及装置
CN105897438A (zh) * 2016-03-22 2016-08-24 上海斐讯数据通信技术有限公司 一种广播发送方法及装置
CN106874077A (zh) * 2015-12-11 2017-06-20 腾讯科技(深圳)有限公司 进程运行方法及装置
CN107465601A (zh) * 2017-08-18 2017-12-12 武汉斗鱼网络科技有限公司 推送信息处理方法及装置
CN107491355A (zh) * 2017-08-17 2017-12-19 山东浪潮商用系统有限公司 一种基于共享内存的进程间功能调用方法及装置
CN107547723A (zh) * 2016-06-23 2018-01-05 中兴通讯股份有限公司 应用接收信息的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5801690A (en) * 1995-03-24 1998-09-01 Motorola, Inc. Method for managing termination of a multi-processing software application
CN103455380A (zh) * 2012-06-05 2013-12-18 上海斐讯数据通信技术有限公司 多进程通信系统及其建立和通信方法
CN105138402A (zh) * 2015-08-25 2015-12-09 海信集团有限公司 一种应用进程内存释放的优先级调整方法及装置
CN106874077A (zh) * 2015-12-11 2017-06-20 腾讯科技(深圳)有限公司 进程运行方法及装置
CN105897438A (zh) * 2016-03-22 2016-08-24 上海斐讯数据通信技术有限公司 一种广播发送方法及装置
CN107547723A (zh) * 2016-06-23 2018-01-05 中兴通讯股份有限公司 应用接收信息的方法及装置
CN107491355A (zh) * 2017-08-17 2017-12-19 山东浪潮商用系统有限公司 一种基于共享内存的进程间功能调用方法及装置
CN107465601A (zh) * 2017-08-18 2017-12-12 武汉斗鱼网络科技有限公司 推送信息处理方法及装置

Also Published As

Publication number Publication date
CN110928703A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
US10826979B2 (en) Apparatus and method for logically grouping client nodes in an IoT environment using client identifiers
CN108449410B (zh) 一种云平台中消息管理方法、系统及相关装置
US8898191B2 (en) Method for providing connections for application processes to a database server
US9424027B2 (en) Message management system for information transfer within a multitasking system
US9323591B2 (en) Listening for externally initiated requests
US8849905B2 (en) Centralized computing
CN111930525B (zh) Gpu资源使用方法、电子设备及计算机可读介质
JP2002223214A (ja) クラスタ・コンピュータ環境において順序付きメッセージのためのスライディング送信ウィンドウを用いてコンピュータ・システム間の通信を行う装置および方法
CN105373563B (zh) 数据库切换方法及装置
CN106803841B (zh) 消息队列数据的读取方法、装置及分布式数据存储系统
CN110928700B (zh) 多进程通讯方法和装置
CN110928703B (zh) 多进程通讯注册方法和装置
CN110928702B (zh) 多进程消息通讯系统
CN106911739B (zh) 一种信息分发方法及装置
CN110928701A (zh) 通讯注册方法和装置
US9130881B2 (en) Direct return to source (DRS) routing of customer information control systems (CICS) transactions
CN112134938B (zh) 一种消息处理方法、装置、终端及计算机可读存储介质
CN112822299B (zh) 基于rdma的数据传输方法、装置及电子设备
JP5381242B2 (ja) マルチプロセッサシステム及び制御プログラム
WO2012071860A1 (zh) 多住户单元的单板间同步通信的方法及多住户单元
CN117076409B (zh) 文件共享方法、装置、系统、电子设备及存储介质
US9588924B2 (en) Hybrid request/response and polling messaging model
CN108108243B (zh) 一种资源分享系统和方法
CN114116258A (zh) 队列管理器热备方法、系统、终端及存储介质
CN114138465A (zh) 一种队列资源的调度方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant