CN110928700A - 多进程通讯方法和装置 - Google Patents
多进程通讯方法和装置 Download PDFInfo
- Publication number
- CN110928700A CN110928700A CN201811100206.6A CN201811100206A CN110928700A CN 110928700 A CN110928700 A CN 110928700A CN 201811100206 A CN201811100206 A CN 201811100206A CN 110928700 A CN110928700 A CN 110928700A
- Authority
- CN
- China
- Prior art keywords
- message
- control bus
- header information
- processes
- added
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种多进程通讯方法和装置,其中,该方法包括:控制总线接收进程发送的消息;所述控制总线为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;控制总线将添加了头信息的消息发送出去。在上述方案中,通过为消息添加头信息,在头信息中携带标识ID,从而可以告知接收方是否需要对接收到的消息进行处理,从而可以提升多进程通讯的秩序性和高效性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种多进程通讯方法和装置。
背景技术
进程间通信是指在不同进程之间传播或交换信息,常用的进程间通信方式有:管道、消息队列、信号量、共享内存、socket。
其中,管道分为:无名管道和命名管道,无名管道只能用于具有亲缘关系的进程之间的通信,命名管道可以在无关的进程之间交换数据,但是命名管道只能承载无格式字节流,在数据读出时清除管道的数据。消息队列可以完成多个进程间消息传递工作,但是效率低,实时性差。信号量用于进程间同步,如果需要在进程间传递数据,就需要结合共享内存。共享内存指两个或多个进程共享一个给定的存储区,由于进程直接对内存进行存取,因此速度较快效率较高,然后,由于多个进程可同时操作一块内存,因此需要进行同步。Socket是一种面相网络的进程间通信方式,不仅能实现本地同一台计算机内部的进程间通信还可以实现不同主机上进程的通信。
最直接的多进程消息通讯方法是分别在需要通信的两个进程间建立一对一的通信,这样浪费资源,不利于统一管理。常用的多进程消息通讯使用socket实现,但消息传输速度慢,实时性不好。
针对如何高效实时地进行多进程消息通讯,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种多进程通讯方法和装置,以达到实时高效进行多进程通讯的目的。
本发明实施例提供了一种多进程通讯方法,包括:
控制总线接收进程发送的消息;
所述控制总线为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;
所述控制总线将添加了头信息的消息发送出去。
在一个实施方式中,在所述控制总线将添加了头信息的消息发送出去之后,所述方法还包括:
所述控制总线确定所述消息是否需要回复;
在确定所述消息需要回复的情况下,在所述控制总线上设置一个特定的内存位置;
通过该特定的内存位置,存储所述消息。
在一个实施方式中,在所述控制总线将添加了头信息的消息发送出去之后,所述方法还包括:
进程接收添加了头信息的消息;
所述进程提取所述头信息中的接收消息的进程的ID;
将接收消息的进程的ID与自身的ID进行对比;
如果相同,则处理该添加了头信息的消息。
在一个实施方式中,在将接收消息的进程的ID与自身的ID进行对比之后,所述方法还包括:
确定所述接收消息的进程的ID是否标识该消息为广播消息;
在确定为广播消息的情况下,处理该添加了头信息的消息。
在一个实施方式中,所述控制总线包括:第一控制总线和第二控制总线,其中,所述第一控制总线用于服务端主动发送控制消息给所有的进程并接收进程回复的消息;所述第二控制总线用于进程主动发送消息至服务端和其它进程。
本发明实施例还提供了一种多进程通讯装置,位于控制总线中,包括:
接收模块,用于接收进程发送的消息;
添加模块,用于为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;
发送模块,用于将添加了头信息的消息发送出去。
在一个实施方式中,上述多进程通讯装置还可以包括:
确定模块,用于在所述控制总线将添加了头信息的消息发送出去之后,所述控制总线确定所述消息是否需要回复;
设置模块,用于在确定所述消息需要回复的情况下,在所述控制总线上设置一个特定的内存位置;
存储模块,用于通过该特定的内存位置,存储所述消息。
在一个实施方式中,上述多进程通讯装置还可以包括:进程接收添加了头信息的消息;所述进程提取所述头信息中的接收消息的进程的ID;将接收消息的进程的ID与自身的ID进行对比;如果相同,则处理该添加了头信息的消息。
在一个实施方式中,上述多进程通讯装置还可以包括:在将接收消息的进程的ID与自身的ID进行对比之后,确定所述接收消息的进程的ID是否标识该消息为广播消息;在确定为广播消息的情况下,处理该添加了头信息的消息。
在一个实施方式中,所述控制总线包括:第一控制总线和第二控制总线,其中,所述第一控制总线用于服务端主动发送控制消息给所有的进程并接收进程回复的消息;所述第二控制总线用于进程主动发送消息至服务端和其它进程。
在本发明实施例中,控制总线接收进程发送的消息,所述控制总线为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程,所述控制总线将添加了头信息的消息发送出去。即,通过为消息添加头信息,在头信息中携带标识ID,从而可以告知接收方是否需要对接收到的消息进行处理,从而可以提升多进程通讯的秩序性和高效性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图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,下面对该结构进行说明。
接收模块501,用于接收进程发送的消息;
添加模块502,用于为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;
发送模块503,用于将添加了头信息的消息发送出去。
在一个实施方式中,上述多进程通讯装置还可以包括:确定模块,用于在所述控制总线将添加了头信息的消息发送出去之后,所述控制总线确定所述消息是否需要回复;设置模块,用于在确定所述消息需要回复的情况下,在所述控制总线上设置一个特定的内存位置;存储模块,用于通过该特定的内存位置,存储所述消息。
在一个实施方式中,多进程通讯装置还可以包括:进程接收添加了头信息的消息;所述进程提取所述头信息中的接收消息的进程的ID;将接收消息的进程的ID与自身的ID进行对比;如果相同,则处理该添加了头信息的消息。
在一个实施方式中,多进程通讯装置还可以包括:在将接收消息的进程的ID与自身的ID进行对比之后,确定所述接收消息的进程的ID是否标识该消息为广播消息;在确定为广播消息的情况下,处理该添加了头信息的消息。
在一个实施方式中,所述控制总线可以包括:第一控制总线和第二控制总线,其中,所述第一控制总线用于服务端主动发送控制消息给所有的进程并接收进程回复的消息;所述第二控制总线用于进程主动发送消息至服务端和其它进程。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
从以上的描述中,可以看出,本发明实施例实现了如下技术效果:控制总线接收进程发送的消息,所述控制总线为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程,所述控制总线将添加了头信息的消息发送出去。即,通过为消息添加头信息,在头信息中携带标识ID,从而可以告知接收方是否需要对接收到的消息进行处理,从而可以提升多进程通讯的秩序性和高效性。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器***、基于微处理器的***、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (10)
1.一种多进程通讯方法,其特征在于,包括:
控制总线接收进程发送的消息;
所述控制总线为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;
所述控制总线将添加了头信息的消息发送出去。
2.根据权利要求1所述的方法,其特征在于,在所述控制总线将添加了头信息的消息发送出去之后,所述方法还包括:
所述控制总线确定所述消息是否需要回复;
在确定所述消息需要回复的情况下,在所述控制总线上设置一个特定的内存位置;
通过该特定的内存位置,存储所述消息。
3.根据权利要求1所述的方法,其特征在于,在所述控制总线将添加了头信息的消息发送出去之后,所述方法还包括:
进程接收添加了头信息的消息;
所述进程提取所述头信息中的接收消息的进程的ID;
将接收消息的进程的ID与自身的ID进行对比;
如果相同,则处理该添加了头信息的消息。
4.根据权利要求3所述的方法,其特征在于,在将接收消息的进程的ID与自身的ID进行对比之后,所述方法还包括:
确定所述接收消息的进程的ID是否标识该消息为广播消息;
在确定为广播消息的情况下,处理该添加了头信息的消息。
5.根据权利要求1所述的方法,其特征在于,所述控制总线包括:第一控制总线和第二控制总线,其中,所述第一控制总线用于服务端主动发送控制消息给所有的进程并接收进程回复的消息;所述第二控制总线用于进程主动发送消息至服务端和其它进程。
6.一种多进程通讯装置,其特征在于,位于控制总线中,包括:
接收模块,用于接收进程发送的消息;
添加模块,用于为进程发送的消息添加头信息,其中,所述头信息用于指示发送消息的进程的ID和接收消息的进程的ID,其中,ID用于唯一标识进程;
发送模块,用于将添加了头信息的消息发送出去。
7.根据权利要求6所述的装置,其特征在于,还包括:
确定模块,用于在所述控制总线将添加了头信息的消息发送出去之后,所述控制总线确定所述消息是否需要回复;
设置模块,用于在确定所述消息需要回复的情况下,在所述控制总线上设置一个特定的内存位置;
存储模块,用于通过该特定的内存位置,存储所述消息。
8.根据权利要求6所述的装置,其特征在于,还包括:进程接收添加了头信息的消息;所述进程提取所述头信息中的接收消息的进程的ID;将接收消息的进程的ID与自身的ID进行对比;如果相同,则处理该添加了头信息的消息。
9.根据权利要求8所述的装置,其特征在于,还包括:在将接收消息的进程的ID与自身的ID进行对比之后,确定所述接收消息的进程的ID是否标识该消息为广播消息;在确定为广播消息的情况下,处理该添加了头信息的消息。
10.根据权利要求6所述的装置,其特征在于,所述控制总线包括:第一控制总线和第二控制总线,其中,所述第一控制总线用于服务端主动发送控制消息给所有的进程并接收进程回复的消息;所述第二控制总线用于进程主动发送消息至服务端和其它进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811100206.6A CN110928700B (zh) | 2018-09-20 | 2018-09-20 | 多进程通讯方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811100206.6A CN110928700B (zh) | 2018-09-20 | 2018-09-20 | 多进程通讯方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928700A true CN110928700A (zh) | 2020-03-27 |
CN110928700B CN110928700B (zh) | 2023-04-07 |
Family
ID=69856247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811100206.6A Active CN110928700B (zh) | 2018-09-20 | 2018-09-20 | 多进程通讯方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928700B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003413A (zh) * | 2021-12-30 | 2022-02-01 | 深圳佑驾创新科技有限公司 | 一种ipc数据通信方法、装置、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0695993A2 (en) * | 1994-07-27 | 1996-02-07 | International Business Machines Corporation | System and method for interprocess communication |
US20040237089A1 (en) * | 2003-05-20 | 2004-11-25 | Teh Jin Teik | Separation of data and instruction for improving system performance in a multiple process environment |
CN101174225A (zh) * | 2006-11-02 | 2008-05-07 | 华为技术有限公司 | 一种实现消息通信的装置及方法 |
CN102355429A (zh) * | 2011-08-12 | 2012-02-15 | 北京思创银联科技股份有限公司 | 基于管道的多进程间消息通信方法 |
CN103455380A (zh) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | 多进程通信***及其建立和通信方法 |
CN103970593A (zh) * | 2013-01-30 | 2014-08-06 | 云联(北京)信息技术有限公司 | 一种多进程交互方法及*** |
CN104317661A (zh) * | 2014-11-04 | 2015-01-28 | 上海斐讯数据通信技术有限公司 | 嵌入式双***的***间通信方法及装置 |
CN104346229A (zh) * | 2014-11-14 | 2015-02-11 | 国家电网公司 | 一种用于嵌入式操作***进程间通讯优化的处理方法 |
CN107391276A (zh) * | 2017-07-05 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 分布式监听方法、监听控制装置及*** |
-
2018
- 2018-09-20 CN CN201811100206.6A patent/CN110928700B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0695993A2 (en) * | 1994-07-27 | 1996-02-07 | International Business Machines Corporation | System and method for interprocess communication |
US20040237089A1 (en) * | 2003-05-20 | 2004-11-25 | Teh Jin Teik | Separation of data and instruction for improving system performance in a multiple process environment |
CN101174225A (zh) * | 2006-11-02 | 2008-05-07 | 华为技术有限公司 | 一种实现消息通信的装置及方法 |
CN102355429A (zh) * | 2011-08-12 | 2012-02-15 | 北京思创银联科技股份有限公司 | 基于管道的多进程间消息通信方法 |
CN103455380A (zh) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | 多进程通信***及其建立和通信方法 |
CN103970593A (zh) * | 2013-01-30 | 2014-08-06 | 云联(北京)信息技术有限公司 | 一种多进程交互方法及*** |
CN104317661A (zh) * | 2014-11-04 | 2015-01-28 | 上海斐讯数据通信技术有限公司 | 嵌入式双***的***间通信方法及装置 |
CN104346229A (zh) * | 2014-11-14 | 2015-02-11 | 国家电网公司 | 一种用于嵌入式操作***进程间通讯优化的处理方法 |
CN107391276A (zh) * | 2017-07-05 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 分布式监听方法、监听控制装置及*** |
Non-Patent Citations (1)
Title |
---|
陈涛 等: "基于Linux的多线程池并发Web服务器设计" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003413A (zh) * | 2021-12-30 | 2022-02-01 | 深圳佑驾创新科技有限公司 | 一种ipc数据通信方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110928700B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826979B2 (en) | Apparatus and method for logically grouping client nodes in an IoT environment using client identifiers | |
US9424027B2 (en) | Message management system for information transfer within a multitasking system | |
CN105630731A (zh) | 一种多cpu环境下网卡数据处理方法和装置 | |
JP2008033952A (ja) | 共通作業キュー環境における最適格サーバ | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
US9323591B2 (en) | Listening for externally initiated requests | |
JP2002223214A (ja) | クラスタ・コンピュータ環境において順序付きメッセージのためのスライディング送信ウィンドウを用いてコンピュータ・システム間の通信を行う装置および方法 | |
CN110928700B (zh) | 多进程通讯方法和装置 | |
CN109818977B (zh) | 一种接入服务器通信优化方法、接入服务器以及通信*** | |
CN103827830A (zh) | 用于在事务性中间件机器环境中防止单点瓶颈的***和方法 | |
CN110928703B (zh) | 多进程通讯注册方法和装置 | |
CN110928702B (zh) | 多进程消息通讯*** | |
CN112822299A (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
CN112822300A (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
CN110928701A (zh) | 通讯注册方法和装置 | |
CN112134938B (zh) | 一种消息处理方法、装置、终端及计算机可读存储介质 | |
US11797342B2 (en) | Method and supporting node for supporting process scheduling in a cloud system | |
CN112328417A (zh) | 一种嵌入式多程序通讯方法和*** | |
CN117076409B (zh) | 文件共享方法、装置、***、电子设备及存储介质 | |
CN113783830B (zh) | 用于数据通信的方法和装置 | |
US9588924B2 (en) | Hybrid request/response and polling messaging model | |
CN115086425B (zh) | 消息传输方法、装置、程序产品、介质及电子设备 | |
WO2012071860A1 (zh) | 多住户单元的单板间同步通信的方法及多住户单元 | |
CN114116258B (zh) | 队列管理器热备方法、***、终端及存储介质 | |
CN108108243B (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 |