CN114064324A - 进程间通信方法、装置、设备及计算机可读存储介质 - Google Patents
进程间通信方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114064324A CN114064324A CN202111422039.9A CN202111422039A CN114064324A CN 114064324 A CN114064324 A CN 114064324A CN 202111422039 A CN202111422039 A CN 202111422039A CN 114064324 A CN114064324 A CN 114064324A
- Authority
- CN
- China
- Prior art keywords
- shared memory
- queue
- communication
- service process
- global
- 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.)
- Pending
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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
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 And Data Communications (AREA)
Abstract
本公开涉及一种进程间通信方法、装置、设备及计算机可读存储介质。本公开通过基于全局共享内存创建用于通信的共享内存,客户进程与服务进程通过标签与用于通信的共享内存建立连接,基于该用于通信的共享内存完成数据交互,大大提高了通信效率,并且客户进程与服务进程之间无需拥有血缘关系即可基于共享内存进行通信,改善了基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种进程间通信方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,进程间通信技术的应用越来越广泛。
通常情况下,可以通过系统接口的方式来实现进程间通信。但是,这种方式导致进程间通信会出现延迟高、响应慢的问题。因此,针对该问题,提出了通过共享内存来实现进程间通信。
但是,基于共享内存实现进程间通信的这种方式需要通信的多个进程之间具有血缘关系,例如,需要通信的两个进程之间是父子关系,从而大大限制了进程间通信。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种进程间通信方法、装置、设备及计算机可读存储介质,以改善基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。
第一方面,本公开实施例提供一种进程间通信方法,包括:
当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;
所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;
当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;
所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
第二方面,本公开实施例提供一种进程间通信装置,包括:
获取模块,用于当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;
创建模块,用于所述客户进程创建用于通信的共享内存;
记录模块,用于所述客户进程在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;
连接建立模块,用于当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;
通信模块,用于所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
第三方面,本公开实施例提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的进程间通信方法。
本公开实施例提供的进程间通信方法、装置、设备及计算机可读存储介质,通过基于全局共享内存创建用于通信的共享内存,客户进程与服务进程通过标签与用于通信的共享内存建立连接,基于该用于通信的共享内存完成数据交互,大大提高了通信效率,并且客户进程与服务进程之间无需拥有血缘关系即可基于共享内存进行通信,改善了基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的进程间通信方法流程图;
图2为本公开实施例提供的一种应用场景的示意图;
图3为本公开另一实施例提供的进程间通信方法的流程图;
图4为本公开另一实施例提供的进程间通信方法的信令图;
图5为本公开实施例提供的进程间通信装置的结构示意图;
图6为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在进程间通信技术中,需要有管道、消息队列、套接字等满足数据交互的需求。其中,管道的使用场景存在限制,例如需要通信双方进程具有血缘关系,套接字的使用虽然较为稳定和广泛,但延迟较高。基于系统接口实现的消息队列通信性能最差;而基于操作系统的消息队列延迟高、响应慢,因此,提出了基于共享内存的消息队列,但这种基于共享内存的消息队列一般需要在多个有血缘关系的进程中实现,即需要通信双方进程为父子关系,大大限制了基于共享内存的消息队列的使用。针对该问题,本公开实施例提供了一种进程间通信方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的进程间通信方法流程图。该方法可以应用于图2所示的应用场景,该应用场景中包括电子设备20,所述电子设备20内运行有至少一个客户进程21和至少一个服务进程22,电子设备20具体可以是终端,例如,智能手机、掌上电脑、平板电脑、带显示屏的可穿戴设备、台式机、笔记本电脑、一体机、智能家居设备等。需要说明的是,所述至少一个客户进程21和至少一个服务进程22必须处于同一电子设备20中。可以理解的是,本公开实施例提供的进程间通信方法还可以应用在其他场景中。
下面结合图2所示的应用场景,对图1所示的进程间通信方法进行介绍,该方法包括的具体步骤如下:
S101、当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接。
服务进程22与操作系统提供的全局共享内存建立连接,该全局共享内存的第一标识,用于表明其地址、存储容量等信息。客户进程21通过读取系统配置,获取全局共享内存的第一标识,并根据第一标识与所述全局共享内存建立连接,即客户进程21和服务进程22均与全局共享内存建立连接。
S102、所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识。
客户进程21连接至全局共享内存后,基于该全局共享内存创建用于通信的共享内存,用于通信的共享内存的第二标识用于表明该用于通信的共享内存的地址、存储容量等信息。上述全局共享内存中存在全局数组,客户进程21在全局数组中记录所述用于通信的共享内存的第二标识。需要说明的是,同一客户进程在每次运行时创建用于通信的共享内存的第二标识可以是相同的,也可以是不同的。
S103、当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接。
由于全局数组存在于全局共享内存中,因此客户进程21和服务进程22与全局共享内存建立连接后,都可以访问该全局数组。服务进程22访问该全局数组,获取S102中客户进程21记录在全局数组中的第二标识,并根据该第二标识与对应的用于通信的共享内存建立连接。
S104、所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
客户进程21与服务进程22都与所述第二标识所对应的用于通信的共享内存建立连接后,即可基于该用于通信的共享内存进行数据交互。
本公开实施例通过当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。通过基于全局共享内存创建用于通信的共享内存,客户进程与服务进程通过标签与用于通信的共享内存建立连接,基于该用于通信的共享内存完成数据交互,大大提高了通信效率,并且客户进程与服务进程之间无需拥有血缘关系即可基于共享内存进行通信,改善了基于共享内存进行进程间通信的使用限制,从而在保证通信高效的前提下提高了进程间通信的灵活性。
图3为本公开另一实施例提供的进程间通信方法流程图,如图3所示,该方法包括如下几个步骤:
S301、当所述服务进程与全局共享内存建立连接后,所述服务进程在所述全局共享内存中创建第一队列和第二队列。
其中,所述第一队列是所述客户进程在所述全局共享内存中的发送队列,所述第一队列是所述服务进程在所述全局共享内存中的接收队列;所述第二队列是所述服务进程在所述全局共享内存中的发送队列,所述第二队列是所述客户进程在所述全局共享内存中的接收队列。
服务进程22与全局共享内存建立连接后,基于所述全局共享内存创建两个消息队列用于数据交互,分别为第一队列和第二队列。其中,第一队列是所述客户进程21在所述全局共享内存中的发送队列,同时也是所述服务进程22在所述全局共享内存中的接收队列;第二队列是所述服务进程22在所述全局共享内存中的发送队列,同时也是所述客户进程21在所述全局共享内存中的接收队列。也就是说,客户进程21通过第一队列向服务进程22发送数据,通过第二队列接收来自服务进程22的数据;服务进程22通过第一队列接收来自客户进程21的数据,通过第二队列向客户进程21发送数据。
S302、所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接。
具体的,S302和S101的实现过程和原理一致,此处不再赘述。
S303、所述客户进程创建用于通信的共享内存,所述客户进程在所述用于通信的共享内存中创建第三队列和第四队列。
其中,所述第三队列是所述客户进程在所述用于通信的共享内存中的发送队列,所述第三队列是所述服务进程在所述用于通信的共享内存中的接收队列;所述第四队列是所述服务进程在所述用于通信的共享内存中的发送队列,所述第四队列是所述客户进程在所述用于通信的共享内存中的接收队列。所述全局共享内存包括所述用于通信的共享内存。
客户进程21在第一标识对应的全局共享内存中创建用于通信的共享内存,即所述全局共享内存包括所述用于通信的共享内存。客户进程21在用于通信的共享内存中创建另外两个消息队列用于数据交互,分别为第三队列和第四队列。其中,第三队列是所述客户进程21在所述用于通信的共享内存中的发送队列,同时也是所述服务进程22在所述用于通信的共享内存中的接收队列;第四队列是所述服务进程22在所述用于通信的共享内存中的发送队列,同时也是所述客户进程21在所述用于通信的共享内存中的接收队列。也就是说,客户进程21通过第三队列向服务进程22发送数据,通过第四队列接收来自服务进程22的数据;服务进程22通过第三队列接收来自客户进程21的数据,通过第四队列向客户进程21发送数据。可以理解的是,若存在多个客户进程,每个客户进程都会在其各自的用于通信的共享内存上创建一组第三队列和第四队列,即每个客户进程对应一组第三队列和第四队列,而每个服务进程可能对应一组或多组第三队列和第四队列;在一个全局共享内存中可以存在多个用于通信的共享内存。
S304、所述客户进程在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识。
具体的,S304和S102的实现过程和原理一致,此处不再赘述。
S305、所述客户进程通过所述第一队列向所述服务进程发送通知信息,所述通知信息用于提示所述服务进程遍历所述全局数组。
客户进程21在全局数组中记录所述用于通信的共享内存的第二标识之后,生成通知信息,进一步,客户进程21可以将该通知信息放入第一队列中。服务进程22对接收队列进行遍历,当遍历到该通知信息的时候,服务进程22可以从该第一队列中读取该通知信息,对该通知信息进行解析之后,遍历全局数组,获取全局数组中的第二标识。
S306、当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接。
具体的,S306和S103的实现过程和原理一致,此处不再赘述。
S307、所述服务进程通过所述第二队列向所述客户进程发送确认信息。
服务进程22与所述第二标识对应的用于通信的共享内存建立连接后,通过第二队列向客户进程21发送确认信息,告知客户进程21已经成功与所述用于通信的共享内存建立连接。
S308、所述客户进程通过所述第三队列向所述服务进程发送待处理的消息。
S309、所述服务进程对所述待处理的消息进行处理,得到处理结果。
S310、所述服务进程通过所述第四队列向所述客户进程发送所述处理结果。
客户进程21通过第三队列向服务进程22发送待处理的消息,并向服务进程22发送通知信息,通知服务进程22接收待处理消息;服务进程22接收到该通知信息后,通过第三队列接收待处理的消息,并对其进行处理。处理完成后,服务进程22通过第四队列向客户进程21发送处理结果,客户进程21通过第四队列接收该处理结果。可以理解的是,S308~S310可以循环执行,直至客户进程21获得预期的处理结果。
本公开实施例通过在全局共享内存中创建消息队列,用于进程间建立通信连接,并在连接成功后通过信号通知;在用于通信的共享内存中创建另外的消息队列,用于进程间通信,通信双方进程无需拥有血缘关系,而仍然可以基于共享内存进行通信,既保证了通信的低延时、高响应,又避免了通信进程间血缘关系的限制,同时每个客户进程都有各自的接收、发送消息队列,进一步提高了进程间通信方法的灵活性。
图4为本公开另一实施例提供的进程间通信方法信令图,如图4所示,该方法包括如下几个步骤:
S401、服务进程创建监听事件并等待事件。
服务进程22启动时,在内部创建监听事件,并等待事件。其中,监听事件用于监听客户进程21发送的通知信息并做出相应的响应动作。
S402、服务进程与全局共享内存建立连接。
S403、服务进程在全局共享内存中创建第一队列和第二队列。
S404、客户进程获取全局共享内存的第一标识,并根据第一标识与全局共享内存建立连接。
S405、客户进程创建用于通信的共享内存,在用于通信的共享内存中创建第三队列和第四队列。
S406、客户进程在全局共享内存的全局数组中记录用于通信的共享内存的第二标识。
S407、客户进程通过第一队列向服务进程发送通知信息,所述通知信息用于提示服务进程遍历全局数组。
S408、服务进程遍历全局数组,获取到第二标识后,根据第二标识与用于通信的共享内存建立连接。
S409、服务进程通过第二队列向客户进程发送确认信息。
具体地,S402~S409和S301~S307的实现过程和原理一致,此处不再赘述。
S410、服务进程等待事件。
服务进程22与客户进程21都连接到用于通信的共享内存后,服务进程22等待客户进程21发送的通知信息。
S411、客户进程通过第三队列向服务进程发送待处理的消息。
S412、所述服务进程遍历第三队列,接收待处理的消息,并对所述待处理的消息进行处理,得到处理结果。
S413、服务进程通过第四队列向客户进程发送处理结果。
具体地,S411~S413和S308~S310的实现过程和原理一致,此处不再赘述。
本公开实施例通过在服务进程中创建监听事件并等待事件,该监听事件机制在接收到信息时及时做出相应的响应动作,确保服务进程能够及时处理消息队列中的信息,进一步提高了进程间通信的效率,减少延迟时间。
图5为本公开实施例提供的进程间通信装置的结构示意图。本公开实施例提供的进程间通信装置可以执行进程间通信方法实施例提供的处理流程,其特征在于,所述装置设置于电子设备,所述电子设备内运行有至少一个客户进程和至少一个服务进程,如图5所示,进程间通信装置500包括:获取模块510、创建模块520、记录模块530、连接建立模块540、通信模块550;其中,获取模块510用于当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;创建模块520用于所述客户进程创建用于通信的共享内存;记录模块530用于所述客户进程在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;连接建立模块540用于当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;通信模块550用于所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
可选的,所述获取模块510还用于:所述服务进程与全局共享内存建立连接后,所述服务进程在所述全局共享内存中创建第一队列和第二队列。相应的,所述记录模块530还用于所述客户进程通过所述第一队列向所述服务进程发送通知信息,所述通知信息用于提示所述服务进程遍历所述全局数组;相应的,所述连接建立模块540还用于所述服务进程通过所述第二队列向所述客户进程发送确认信息。其中,所述第一队列是所述客户进程在所述全局共享内存中的发送队列,所述第一队列是所述服务进程在所述全局共享内存中的接收队列;所述第二队列是所述服务进程在所述全局共享内存中的发送队列,所述第二队列是所述客户进程在所述全局共享内存中的接收队列。
可选的,所述创建模块520还用于所述客户进程在所述用于通信的共享内存中创建第三队列和第四队列;
相应的,所述通信模块550还用于所述客户进程通过所述第三队列向所述服务进程发送待处理的消息;所述服务进程对所述待处理的消息进行处理,得到处理结果;所述服务进程通过所述第四队列向所述客户进程发送所述处理结果。其中,所述第三队列是所述客户进程在所述用于通信的共享内存中的发送队列,所述第三队列是所述服务进程在所述用于通信的共享内存中的接收队列;所述第四队列是所述服务进程在所述用于通信的共享内存中的发送队列,所述第四队列是所述客户进程在所述用于通信的共享内存中的接收队列。
可选的,所述全局共享内存包括所述用于通信的共享内存。
图5所示实施例的进程间通信装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本公开实施例提供的电子设备的结构示意图。本公开实施例提供的电子设备可以执行进程间通信方法实施例提供的处理流程,如图6所示,电子设备60包括:存储器61、处理器62、计算机程序和通讯接口63;其中,计算机程序存储在存储器61中,并被配置为由处理器62执行如上所述的进程间通信方法。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的进程间通信方法。
此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的进程间通信方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种进程间通信方法,其特征在于,应用于电子设备,所述电子设备内运行有至少一个客户进程和至少一个服务进程,所述方法包括:
当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;
所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;
当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;
所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
2.根据权利要求1所述的方法,其特征在于,所述服务进程与全局共享内存建立连接后,所述方法还包括:
所述服务进程在所述全局共享内存中创建第一队列和第二队列;
相应的,所述客户进程创建用于通信的共享内存,并在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识之后,所述方法还包括:
所述客户进程通过所述第一队列向所述服务进程发送通知信息,所述通知信息用于提示所述服务进程遍历所述全局数组;
相应的,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接之后,所述方法还包括:
所述服务进程通过所述第二队列向所述客户进程发送确认信息。
3.根据权利要求2所述的方法,其特征在于,所述第一队列是所述客户进程在所述全局共享内存中的发送队列,所述第一队列是所述服务进程在所述全局共享内存中的接收队列;
所述第二队列是所述服务进程在所述全局共享内存中的发送队列,所述第二队列是所述客户进程在所述全局共享内存中的接收队列。
4.根据权利要求1所述的方法,其特征在于,所述客户进程创建用于通信的共享内存之后,所述方法还包括:
所述客户进程在所述用于通信的共享内存中创建第三队列和第四队列;
相应的,所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信,包括:
所述客户进程通过所述第三队列向所述服务进程发送待处理的消息;
所述服务进程对所述待处理的消息进行处理,得到处理结果;
所述服务进程通过所述第四队列向所述客户进程发送所述处理结果。
5.根据权利要求4所述的方法,其特征在于,所述第三队列是所述客户进程在所述用于通信的共享内存中的发送队列,所述第三队列是所述服务进程在所述用于通信的共享内存中的接收队列;
所述第四队列是所述服务进程在所述用于通信的共享内存中的发送队列,所述第四队列是所述客户进程在所述用于通信的共享内存中的接收队列。
6.根据权利要求1所述的方法,其特征在于,所述全局共享内存包括所述用于通信的共享内存。
7.一种进程间通信装置,其特征在于,所述装置设置于电子设备,所述电子设备内运行有至少一个客户进程和至少一个服务进程,所述装置包括:
获取模块,用于当所述服务进程与全局共享内存建立连接后,所述客户进程获取所述全局共享内存的第一标识,并根据所述第一标识与所述全局共享内存建立连接;
创建模块,用于所述客户进程创建用于通信的共享内存;
记录模块,用于所述客户进程在所述全局共享内存的全局数组中记录所述用于通信的共享内存的第二标识;
连接建立模块,用于当所述服务进程从所述全局数组中获取到所述第二标识后,所述服务进程根据所述第二标识与所述用于通信的共享内存建立连接;
通信模块,用于所述客户进程通过所述用于通信的共享内存与所述服务进程进行通信。
8.根据权利要求7所述的装置,其特征在于,所述获取模块还用于:所述服务进程与全局共享内存建立连接后,所述服务进程在所述全局共享内存中创建第一队列和第二队列。
相应的,所述记录模块还用于所述客户进程通过所述第一队列向所述服务进程发送通知信息,所述通知信息用于提示所述服务进程遍历所述全局数组;
相应的,所述连接建立模块还用于所述服务进程通过所述第二队列向所述客户进程发送确认信息。
9.根据权利要求8所述的装置,其特征在于,所述第一队列是所述客户进程在所述全局共享内存中的发送队列,所述第一队列是所述服务进程在所述全局共享内存中的接收队列;
所述第二队列是所述服务进程在所述全局共享内存中的发送队列,所述第二队列是所述客户进程在所述全局共享内存中的接收队列。
10.根据权利要求7所述的装置,其特征在于,所述创建模块还用于所述客户进程在所述用于通信的共享内存中创建第三队列和第四队列;
相应的,所述通信模块还用于所述客户进程通过所述第三队列向所述服务进程发送待处理的消息;
所述服务进程对所述待处理的消息进行处理,得到处理结果;
所述服务进程通过所述第四队列向所述客户进程发送所述处理结果。
11.根据权利要求10所述的装置,其特征在于,所述第三队列是所述客户进程在所述用于通信的共享内存中的发送队列,所述第三队列是所述服务进程在所述用于通信的共享内存中的接收队列;
所述第四队列是所述服务进程在所述用于通信的共享内存中的发送队列,所述第四队列是所述客户进程在所述用于通信的共享内存中的接收队列。
12.根据权利要求7所述的装置,其特征在于,所述全局共享内存包括所述用于通信的共享内存。
13.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111422039.9A CN114064324A (zh) | 2021-11-26 | 2021-11-26 | 进程间通信方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111422039.9A CN114064324A (zh) | 2021-11-26 | 2021-11-26 | 进程间通信方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064324A true CN114064324A (zh) | 2022-02-18 |
Family
ID=80276675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111422039.9A Pending CN114064324A (zh) | 2021-11-26 | 2021-11-26 | 进程间通信方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064324A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560877A (zh) * | 2023-07-05 | 2023-08-08 | 北京枫清科技有限公司 | 一种实时图计算方法、装置、电子设备、存储介质 |
-
2021
- 2021-11-26 CN CN202111422039.9A patent/CN114064324A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560877A (zh) * | 2023-07-05 | 2023-08-08 | 北京枫清科技有限公司 | 一种实时图计算方法、装置、电子设备、存储介质 |
CN116560877B (zh) * | 2023-07-05 | 2023-09-22 | 北京枫清科技有限公司 | 一种实时图计算方法、装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180285053A1 (en) | Screenshot method and apparatus | |
CN110968586A (zh) | 分布式事务处理方法及装置 | |
CN111711801B (zh) | 视频数据传输方法、装置、服务器和计算机可读存储介质 | |
CN113938516A (zh) | 同步实现异构系统交易处理的方法及系统 | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
US11736149B2 (en) | Data transmission method for Bluetooth card reader and electronic device | |
CN113535425A (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
CN111580769B (zh) | 显示控制系统、方法、装置、存储介质及处理器 | |
CN110912814A (zh) | 一种接口数据的分发方法及装置 | |
CN112689012A (zh) | 跨网络的代理通讯方法及装置 | |
CN114064324A (zh) | 进程间通信方法、装置、设备及计算机可读存储介质 | |
CN114036031B (zh) | 一种企业数字中台中资源服务应用的调度系统和方法 | |
CN103838746A (zh) | 多cpu系统共享存储数据的方法及该系统 | |
CN112835632A (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN111159298B (zh) | 业务请求处理方法、装置、电子设备及存储介质 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN111475230B (zh) | 应用的功能配置方法、装置和电子设备 | |
CN108563492B (zh) | 数据获取方法、虚拟机以及电子设备 | |
CN112114804A (zh) | 应用程序的生成方法、装置及系统 | |
EP3896931A1 (en) | Spark shuffle-based remote direct memory access system and method | |
CN112711955A (zh) | 一种nfc的信息传输方法、信息传输装置及终端 | |
CN106851535B (zh) | 多系统共享蓝牙的方法及装置 | |
CN111611092B (zh) | 通知处理方法、装置及设备 | |
CN110730173B (zh) | 一种信息交互方法及装置 | |
US9332374B2 (en) | Communication interface method for SE equipped on mobile terminal and SE using the same |
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 |