CN115129469B - 跨进程通信方法、装置、设备及存储介质 - Google Patents
跨进程通信方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115129469B CN115129469B CN202210719357.XA CN202210719357A CN115129469B CN 115129469 B CN115129469 B CN 115129469B CN 202210719357 A CN202210719357 A CN 202210719357A CN 115129469 B CN115129469 B CN 115129469B
- Authority
- CN
- China
- Prior art keywords
- sub
- target task
- execution result
- inter
- main
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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/547—Messaging middleware
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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为本公开实施例提供的一种跨进程通信设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
目前,一般基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)的套接字(socket)的通信方式实现跨进程通信。但是,这种跨进程通信方式性能较低,只能实现两个应用间的通信,无法实现多应用间通信;另外,这种跨进程通信方式仅限于通信,不可以进行底层原生操作。
需要说明的是,由于不同进程可能基于不同语言编写,因此,针对不同语言编写的进程,需要提供一种能够适应于不同语言的跨进程通信方式。
为了解决上述问题,下面结合图1至图4对本公开实施例提供的跨进程通信方法进行说明。在本公开实施例中,该跨进程通信方法可以由电子设备或服务器执行。其中,电子设备可以包括移动电话、平板电脑、台式计算机、笔记本电脑等具有通信功能的设备。服务器可以是云服务器或者服务器集群等具有存储及计算功能的设备。需要说明的是,以下实施例以电子设备作为执行主体进行示例性的解释。
图1示出了本公开实施例提供的一种跨进程通信方法的流程示意图。
如图1所示,该跨进程通信方法可以包括如下步骤。
S110、利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求。
在本公开实施例中,当电子设备中多个进程需要进行跨进程通信时,如果多进程中的第一子进程需要使用其他子进程的功能,第一子进程可以生成子进程依赖请求,并将子进程依赖请求通过进程间通信方式发送至主进程,则主进程可以获取该子进程依赖请求,且主进程能够基于该请求实现第一子进程与其他子进程之间通信。
在本公开实施例中,主进程是指***中用于执行主任务、生成和管理其它子任务的进程,子进程是指由父进程所创建的进程。
在本公开实施例中,进程间通信(interprocess communication,IPC)是一个进程与另一个进程之间共享消息的一种通信方式。
在本公开实施例中,子进程依赖请求是指第一子进程依赖其他子进程执行对应任务的请求信息。
可选的,第一子进程的数量可以为至少一个。
S120、利用主进程基于子进程依赖请求,控制至少一个第二子进程执行子进程依赖请求对应的目标任务,得到目标任务对应的执行结果。
在本公开实施例中,电子设备利用主进程接收到子进程依赖请求之后,能够从子进程依赖请求中提取进程标识,若该进程标识是至少一个第二子进程的进程标识,则控制至少一个第二子进程执行相应的任务,在至少一个第二子进程执行完相应任务之后,获取至少一个第二子进程反馈的执行结果。
在本公开实施例中,目标任务是指为实现特征功能所需执行的待处理任务。
其中,进程标识能够表征子进程的标识。可选的,进程标识可以包括子进程的身份标识号(Identity Document,ID)、包标识符(Packet Identifier,PID)等标识中的任意一种。
在一些实施例中,主进程先将子进程依赖请求发送给至少一个第二子进程,然后由至少一个第二子进程执行目标任务,得到目标任务的执行结果,则主进程获得目标任务的执行结果。
在另一些实施例中,主进程先将子进程依赖请求发送给至少一个第二子进程,然后由至少一个第二子进程与主进程共同执行目标任务,则主进程获得目标任务的执行结果。
S130、利用主进程通过进程间通信方式,将目标任务对应的执行结果反馈至第一子进程。
在本公开实施例中,电子设备中的主进程得到目标任务的执行结果之后,可以通过子进程依赖请求对应的通路,即继续通过进程间通信方式,将目标任务的执行结果反馈至第一子进程,从而实现多进程之间进行跨进程通信。
可以理解的是,目标任务的执行结果可以携带第一子进程的进程标识以及至少一个第二子进程的进程标识,因此,可以根据第一子进程的进程标识,获取子进程依赖请求对应的通路,并基于该通路将执行结果反馈给第一子进程,使得第一子进程能够感知到至少一个第二子进程已完成任务处理。
需要说明的是,由于IPC是一种性能较高的通信方式,因此多个进程之间的跨进程通信也能具有较好的性能。这样,相比于http的跨进程通信方式,基于IPC的跨进程通信方式能够有效保证跨进程通信的性能。
本公开实施例提供了一种跨进程通信方法,能够利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求;然后利用主进程基于子进程依赖请求,控制至少一个第二子进程执行子进程依赖请求对应的目标任务,得到目标任务对应的执行结果;进而利用主进程通过所述进程间通信方式,将目标任务对应的执行结果反馈至所述第一子进程。由此,能够通过主进程对多个子进程之间的跨进程通信进行管理,这样,能够保证子进程与主进程之间的跨进程通信,也能够保证子进程与子进程之间的跨进程通信,也就是保证了各个进程之间能够进行有效的跨进程通信。
在本公开实施例中,可选的,主进程基于第一语言编写,第一子进程和至少一个第二子进程基于第二语言编写,并且,第一语言和第二语言不相同;第一子进程是Electron主进程,至少一个第二子进程是U3D子进程。
可选的,第一语言可以是Electron,第二语言可以是U3D(Unity)。其中,Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序框架,U3D是基于C#语言开发的实时3D互动内容创作和运营平台。
需要说明的是,由于IPC能够实现跨语言通信,因此,尽管多进程中的主进程和子进程基于不同语言编写,通过IPC通信方式,也能够保证各个进程之间进行有效的跨进程通信,从而提供了一种跨语言通信的规范。
在本公开另一种实施方式中,可以由至少一个第二子进程和主进程共同执行目标任务,或者,由至少一个第二子进程执行目标任务。
图2示出了本公开实施例提供的另一种跨进程通信方法的流程示意图。
如图2所示,该跨进程通信方法可以包括如下步骤。
S210、从子进程依赖请求中提取第一子进程的子进程标识。
在本公开实施例中,电子设备中的主进程检测到子进程依赖请求时,为了提高跨进程通信的安全性,可以从该请求中提取第一子进程的子进程标识,并确定第一子进程的子进程标识是否是已经存储的标识。
在本公开实施例中,第一子进程的子进程标识能够表征第一子进程的身份信息。
可选的,进程标识可以包括子进程的身份标识号(Identity Document,ID)、包标识符(Packet Identifier,PID)等标识中的任意一种。
S220、若从预先存储的子进程标识中查找到第一子进程的子进程标识,则通过进程间通信方式,接收第一子进程发送的子进程依赖请求。
在本公开实施例中,电子设备中的主进程获取到第一子进程的子进程标识之后,可以将第一子进程的子进程标识与预先存储的子进程标识一一对比,若从预先存储的子进程标识中查找到第一子进程的子进程标识,则说明第一子进程的子进程标识是已经存储的标识,则可以直接接收子进程依赖请求。
具体的,在各个子进程启动之后,各子进程可以将各自对应的标识发送至主进程,使得主进程可以存储各子进程对应的子进程标识。
可以理解的是,若从预先存储的子进程标识中未查找到第一子进程的子进程标识,则说明第一子进程的子进程标识是未存储的标识,则可以拒绝接收子进程依赖请求。
由此,在本公开实施例中,通过将子进程依赖请求中的第一子进程的子进程标识与预先存储的子进程标识进行对比,选择性的接收或者拒绝子进程依赖请求,能够提高跨进程通信的安全性。
S230、通过进程间通信方式,将子进程依赖请求发送至至少一个第二子进程,其中,至少一个第二子进程用于基于子进程依赖请求生成主进程依赖请求。
在本公开实施例中,电子设备中的主进程将子进程依赖请求发送至至少一个第二子进程之后,如果至少一个第二子进程需要依赖主进程执行部分功能,则至少一个第二子进程可以根据子进程依赖请求生成主进程依赖请求。
在本公开实施例中,主进程依赖请求是指至少一个第二子进程依赖主进程执行对应任务的请求信息。具体的,主进程依赖请求可以携带所依赖的主进程的任务模块。
S240、响应于至少一个第二子进程反馈的主进程依赖请求,确定目标任务对应的主进程执行结果。
在本公开实施例中,电子设备中的主进程接收到主进程依赖请求,可以调取相应的功能模块进程任务处理,得到目标任务对应的主进程执行结果。
在本公开实施例中,主进程执行结果可以是主进程得到的中间结果。
S250、通过进程间通信方式,将目标任务对应的主进程执行结果反馈至至少一个第二子进程,其中,至少一个第二子进程用于基于主进程执行结果继续执行目标任务,得到目标任务对应的执行结果。
在本公开实施例中,电子设备中的主进程将主进程执行结果反馈至至少一个第二子进程之后,至少一个第二子进程能够将主进程执行结果作为目标任务的触发条件,使得基于该触发条件继续进行任务处理,得到目标任务对应的执行结果,即得到最终执行结果。
S260、通过进程间通信方式,接收至少一个第二子进程反馈的目标任务对应的执行结果。
在本公开实施例中,电子设备中的主进程可以通过主进程执行结果的反馈通路,并利用进程间通信方式,接收执行结果。
S270、通过进程间通信方式,接收至少一个第二子进程反馈的目标任务对应的执行结果,其中,至少一个第二子进程用于基于执行子进程依赖请求对应的目标任务。
在本公开实施例中,电子设备中的主进程将子进程依赖请求发送至至少一个第二子进程之后,如果至少一个第二子进程不需要依赖主进程执行部分功能,则至少一个第二子进程可以直接进行任务处理,得到目标任务的处理结果,然后,主进程可以将目标任务的执行结果反馈至主进程。
由此,在本公开实施例中,至少一个第二子进程可以根据自身的任务执行情况单独进行任务处理,或者由主进程协助进行任务处理,这样,能够适用于多种应用场景下的任务处理过程,提高了任务处理过程的灵活性。
S280、利用主进程通过进程间通信方式,将目标任务对应的执行结果反馈至第一子进程。
其中,S280与S130的具体实现方式相似,在此不做赘述。
在本公开又一种实施方式中,主进程在接收子进程依赖请求之前,需要启动各个子进程,且获取并存储各个子进程对应的子进程标识;主进程在得到目标任务对应的执行结果之后,可以将至少一个第二子进程关闭。
图3示出了本公开实施例提供的又一种跨进程通信方法的流程示意图。
如图3所示,该跨进程通信方法可以包括如下步骤。
S310、基于第一子进程的安装路径,启动第一子进程,以及获取并存储第一子进程对应的子进程标识。
在本公开实施例中,在进行跨进程通信之前,主进程可以通过IPC获取第一子进程的安装路径,并基于该安装路径,启动第一子进程;在第一子进程启动之后,主进程可以通过IPC获取第一子进程对应的子进程标识,并存储第一子进程对应的子进程标识。
为了便于理解第一子进程对应的子进程标识的获取过程,图4示出了本公开实施例提供的一种跨进程通信方法的逻辑示意图。
如图4所示,第一子进程A安装完毕之后,首先,主进程可以通过IPC获取第一子进程A的安装路径,然后,主进程可以通过IPC获取第一子进程A对应的子进程标识,并存储第一子进程A对应的子进程标识。
S320、通过进程间通信方式接收第一子进程发送的进程辅助请求。
S330、响应于进程辅助请求,启动至少一个第二子进程,以及获取并存储至少一个第二子进程对应的子进程标识。
具体的,当第一子进程需要使用至少一个第二子进程的功能时,可以生成进程辅助请求,则电子设备中的主进程可以通过IPC接收进程辅助请求,然后,响应于该请求,则通过IPC获取至少一个第二子进程的安装路径,并基于该安装路径,启动至少一个第二子进程;在至少一个第二子进程启动之后,主进程可以通过IPC获取第二子进程对应的子进程标识,并存储至少一个第二子进程对应的子进程标识。
继续参见图4,第二子进程B和第二子进程C安装完毕之后,首先,主进程可以通过IPC获取第二子进程B和第二子进程C分别对应的安装路径,然后,主进程获取进程辅助请求,并响应于该进程辅助请求,通过IPC获取第二子进程B和第二子进程C分别对应的子进程标识,并存储第二子进程B和第二子进程C分别对应的子进程标识。
S340、利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求。
S350、利用主进程基于子进程依赖请求,控制至少一个第二子进程执行子进程依赖请求对应的目标任务,得到目标任务对应的执行结果。
其中,S340~S350与S110~S120的具体实现方式相似,在此不做赘述。
S360、通过进程间通信方式,接收至少一个第二子进程发送的子进程关闭请求。
在本公开实施例中,在至少一个第二子进程执行完目标任务之后,电子设备中的至少一个第二子进程需要生成子进程关闭请求,则主进程能够通过IPC,接收至少一个第二子进程发送的子进程关闭请求。
在本公开实施例中,子进程关闭请求是指请求主进程关闭子进程的信息。
具体的,子进程关闭请求可以携带至少一个第二子进程的进程标识。
S370、响应于子进程关闭请求,将已开启的至少一个第二子进程关闭。
在本公开实施例中,电子设备中的主进程可以从子进程关闭请求中提取至少一个第二子进程的进程标识,并将已开启的至少一个第二子进程关闭。
S380、在至少一个第二子进程已关闭的情况下,通过进程间通信方式,将目标任务对应的执行结果发送至第一子进程。
在本公开实施例中,电子设备中的主进程在关闭至少一个第二子进程之后,可以将至少一个第二子进程的关闭结果通知给第一子进程,使得第一子进程确定目标任务已经执行完毕,与此同时,将目标任务的执行结果反馈至第一子进程。
进一步的,在关闭至少一个第二子进程之后,可以删除至少一个第二子进程的子进程标识,使得至少一个第二子进程执行目标任务之后,进入休眠状态,在下次使用至少一个第二子进程时,可以重新获取至少一个第二子进程对应的进程标识。
由此,在本公开实施例中,可以通过主进程控制第一子进程和至少一个第二子进程开启和关闭,从而实现在跨进程通信的过程中,同时实现底层原生操作的效果。
本公开实施例还提供了一种用于实现上述的跨进程通信方法的跨进程通信装置,下面结合图5进行说明。在本公开实施例中,该跨进程通信装置可以为电子设备或服务器。其中,电子设备可以包括移动电话、平板电脑、台式计算机、笔记本电脑等具有通信功能的设备。服务器可以是云服务器或者服务器集群等具有存储及计算功能的设备。
图5示出了本公开实施例提供的一种跨进程通信装置的结构示意图。
如图5所示,跨进程通信装置500可以包括:
子进程依赖请求接收模块510,用于利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求;
控制模块520,用于利用主进程基于子进程依赖请求,控制至少一个第二子进程执行子进程依赖请求对应的目标任务,得到目标任务对应的执行结果;
执行结果反馈模块530,用于利用主进程通过进程间通信方式,将目标任务对应的执行结果反馈至第一子进程。
本公开实施例提供了一种跨进程通信装置,能够利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求;然后利用主进程基于子进程依赖请求,控制至少一个第二子进程执行子进程依赖请求对应的目标任务,得到目标任务对应的执行结果;进而利用主进程通过进程间通信方式,将目标任务对应的执行结果反馈至第一子进程。由此,能够通过主进程对多个子进程之间的跨进程通信进行管理,这样,能够保证子进程与主进程之间的跨进程通信,也能够保证子进程与子进程之间的跨进程通信,也就是保证了各个进程之间能够进行有效的跨进程通信。
在一些可选的实施例中,主进程基于第一语言编写,第一子进程和第二子进程基于第二语言编写,并且,第一语言和第二语言不相同;
第一子进程是Electron主进程,至少一个第二子进程是U3D子进程。
在一些可选的实施例中,子进程依赖请求接收模块510,可以包括:
子进程标识提取单元,用于从子进程依赖请求中提取第一子进程的子进程标识;
子进程依赖请求接收单元,用于若从预先存储的子进程标识中查找到第一子进程的子进程标识,则通过进程间通信方式,接收第一子进程发送的子进程依赖请求。
在一些可选的实施例中,控制模块520,可以包括:
子进程依赖请求发送单元,用于通过进程间通信方式,将子进程依赖请求发送至至少一个第二子进程,其中,至少一个第二子进程用于基于子进程依赖请求生成主进程依赖请求;
主进程执行结果确定单元,用于响应于至少一个第二子进程反馈的主进程依赖请求,确定目标任务对应的主进程执行结果;
主进程执行结果反馈单元,用于通过进程间通信方式,将目标任务对应的主进程执行结果反馈至至少一个第二子进程,其中,至少一个第二子进程用于基于主进程执行结果继续执行目标任务,得到目标任务对应的执行结果;
第一接收单元,用于通过进程间通信方式,接收第二子进程反馈的目标任务对应的执行结果。
在一些可选的实施例中,控制模块520,包括:
子进程依赖请求发送单元,将子进程依赖请求发送至至少一个第二子进程,其中,至少一个第二子进程用于基于执行子进程依赖请求对应的目标任务;
第二接收单元,用于通过进程间通信方式,接收至少一个第二子进程反馈的目标任务对应的执行结果,其中,第二子进程用于基于执行子进程依赖请求对应的目标任务。
在一些可选的实施例中,该装置还包括:
第一子进程启动模块,用于基于第一子进程的安装路径,启动第一子进程,以及获取并存储第一子进程对应的子进程标识。
在一些可选的实施例中,该装置还包括:
第二子进程启动模块,用于通过进程间通信方式接收第一子进程发送的进程辅助请求;
响应于进程辅助请求,启动至少一个第二子进程,以及获取并存储至少一个第二子进程对应的子进程标识。
在一些可选的实施例中,该装置还包括:
子进程关闭请求接收模块,用于通过进程间通信方式,接收至少一个第二子进程发送的子进程关闭请求;
第二子进程关闭模块,用于响应于子进程关闭请求,将已开启的至少一个第二子进程关闭;
相应的,执行结果反馈模块530具体用于,在至少一个第二子进程已关闭的情况下,通过进程间通信方式,将目标任务对应的执行结果发送至至少一个第一子进程。
需要说明的是,图5所示的跨进程通信装置500可以执行图1至图4所示的方法实施例中的各个步骤,并且实现图1至图4所示的方法实施例中的各个过程和效果,在此不做赘述。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。存储器存储有能够被至少一个处理器执行的计算机程序,计算机程序在被至少一个处理器执行时用于使电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
参考图6,现将描述可以作为本公开的服务器或客户端的跨进程通信设备600的结构框图,其是可以应用于本公开的各方面的硬件设备的示例,该跨进程通信设备600可以是上述电子设备。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,跨进程通信设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM603中,还可存储跨进程通信设备600操作所需的各种程序和数据。计算单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
跨进程通信设备600中的多个部件连接至I/O接口605,包括:输入单元606、输出单元607、存储单元608以及通信单元609。输入单元606可以是能向跨进程通信设备600输入信息的任何类型的设备,输入单元606可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元607可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元604可以包括但不限于磁盘、光盘。通信单元609允许跨进程通信设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理。例如,在一些实施例中,跨进程通信方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM602和/或通信单元609而被载入和/或安装到跨进程通信设备600上。在一些实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行跨进程通信方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种跨进程通信方法,其特征在于,包括:
利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求;
利用所述主进程基于所述子进程依赖请求,控制至少一个第二子进程执行所述子进程依赖请求对应的目标任务,得到所述目标任务对应的执行结果,包括:
通过所述进程间通信方式,将所述子进程依赖请求发送至所述至少一个第二子进程,其中,所述至少一个第二子进程用于基于所述子进程依赖请求生成主进程依赖请求;
响应于所述至少一个第二子进程反馈的所述主进程依赖请求,确定所述目标任务对应的主进程执行结果;
通过所述进程间通信方式,将所述目标任务对应的主进程执行结果反馈至所述至少一个第二子进程,其中,所述至少一个第二子进程用于基于所述主进程执行结果继续执行所述目标任务,得到所述目标任务对应的执行结果;
通过所述进程间通信方式,接收所述至少一个第二子进程反馈的所述目标任务对应的执行结果;
所述利用所述主进程基于所述子进程依赖请求,控制至少一个第二子进程执行所述子进程依赖请求对应的目标任务,得到所述目标任务对应的执行结果;
利用所述主进程通过所述进程间通信方式,将所述目标任务对应的执行结果反馈至所述第一子进程。
2.根据权利要求1所述的方法,其特征在于,所述主进程基于第一语言编写,所述第一子进程和所述至少一个第二子进程基于第二语言编写,并且,所述第一语言和所述第二语言不相同;
所述第一子进程是Electron主进程,所述至少一个第二子进程是U3D子进程。
3.根据权利要求1所述的方法,其特征在于,所述利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求,包括:
从所述子进程依赖请求中提取所述第一子进程的子进程标识;
若从预先存储的子进程标识中查找到所述第一子进程的子进程标识,则通过所述进程间通信方式,接收所述第一子进程发送的所述子进程依赖请求。
4.根据权利要求1所述的方法,其特征在于,所述利用所述主进程基于所述子进程依赖请求,控制至少一个第二子进程执行所述子进程依赖请求对应的目标任务,得到所述目标任务对应的执行结果,包括:
通过所述进程间通信方式,将所述子进程依赖请求发送至所述至少一个第二子进程,其中,所述至少一个第二子进程用于基于执行所述子进程依赖请求对应的目标任务;
通过所述进程间通信方式,接收所述至少一个第二子进程反馈的所述目标任务对应的执行结果。
5.根据权利要求1所述的方法,其特征在于,在所述利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求之前,所述方法还包括:
基于所述第一子进程的安装路径,启动所述第一子进程,以及获取并存储所述第一子进程对应的子进程标识。
6.根据权利要求5所述的方法,其特征在于,在所述基于所述第一子进程的安装路径,启动所述第一子进程,以及获取并存储所述第一子进程对应的子进程标识之后,所述方法还包括:
通过所述进程间通信方式接收所述第一子进程发送的进程辅助请求;
响应于所述进程辅助请求,启动所述至少一个第二子进程,以及获取并存储所述至少一个第二子进程对应的子进程标识。
7.根据权利要求5所述的方法,其特征在于,在所述利用所述主进程通过所述进程间通信方式,将所述目标任务对应的执行结果反馈至所述第一子进程之前,所述方法还包括:
通过所述进程间通信方式,接收所述至少一个第二子进程发送的子进程关闭请求;
响应于所述子进程关闭请求,将已开启的所述至少一个第二子进程关闭;
相应的,所述利用所述主进程通过所述进程间通信方式,将所述目标任务对应的执行结果反馈至所述第一子进程,包括:
在所述至少一个第二子进程已关闭的情况下,通过所述进程间通信方式,将所述目标任务对应的执行结果发送至所述第一子进程。
8.一种跨进程通信装置,其特征在于,包括:
子进程依赖请求接收模块,用于利用主进程通过进程间通信方式,接收第一子进程发送的子进程依赖请求;
控制模块,用于利用所述主进程基于所述子进程依赖请求,控制至少一个第二子进程执行所述子进程依赖请求对应的目标任务,得到所述目标任务对应的执行结果;
执行结果反馈模块,用于利用所述主进程通过所述进程间通信方式,将所述目标任务对应的执行结果反馈至所述第一子进程;
所述控制模块,包括:
子进程依赖请求发送单元,用于通过所述进程间通信方式,将所述子进程依赖请求发送至所述至少一个第二子进程,其中,所述至少一个第二子进程用于基于所述子进程依赖请求生成主进程依赖请求;
主进程执行结果确定单元,用于响应于所述至少一个第二子进程反馈的所述主进程依赖请求,确定所述目标任务对应的主进程执行结果;
主进程执行结果反馈单元,用于通过所述进程间通信方式,将所述目标任务对应的主进程执行结果反馈至所述至少一个第二子进程,其中,所述至少一个第二子进程用于基于所述主进程执行结果继续执行所述目标任务,得到所述目标任务对应的执行结果;
第一接收单元,用于通过所述进程间通信方式,接收所述至少一个第二子进程反馈的所述目标任务对应的执行结果。
9.一种跨进程通信设备,其特征在于,包括:
处理器;
存储器,用于存储可执行指令;
其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现上述权利要求1-7中任一项所述的跨进程通信方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述权利要求1-7中任一项所述的跨进程通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210719357.XA CN115129469B (zh) | 2022-06-23 | 2022-06-23 | 跨进程通信方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210719357.XA CN115129469B (zh) | 2022-06-23 | 2022-06-23 | 跨进程通信方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115129469A CN115129469A (zh) | 2022-09-30 |
CN115129469B true CN115129469B (zh) | 2023-04-21 |
Family
ID=83379134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210719357.XA Active CN115129469B (zh) | 2022-06-23 | 2022-06-23 | 跨进程通信方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129469B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413386A (zh) * | 2019-06-27 | 2019-11-05 | 深圳市富途网络科技有限公司 | 多进程处理方法、装置、终端设备及计算机可读存储介质 |
EP3819764A2 (en) * | 2020-09-29 | 2021-05-12 | Beijing Baidu Netcom Science And Technology Co. Ltd. | Service information processing method, apparatus, device and computer storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107179982B (zh) * | 2016-03-09 | 2021-05-04 | 创新先进技术有限公司 | 一种跨进程调试方法和装置 |
US9733999B1 (en) * | 2016-03-24 | 2017-08-15 | Wells Fargo Bank, N.A. | Dynamic optimization of application workflows |
CN111176801B (zh) * | 2019-07-17 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 一种多进程管理方法、装置、设备及存储介质 |
US20210042167A1 (en) * | 2019-08-07 | 2021-02-11 | Microsoft Technology Licensing, Llc | Dynamic Package Dependency(ies) |
CN111381903B (zh) * | 2020-03-18 | 2023-05-26 | 支付宝(杭州)信息技术有限公司 | 程序运行方法、装置、设备及介质 |
-
2022
- 2022-06-23 CN CN202210719357.XA patent/CN115129469B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413386A (zh) * | 2019-06-27 | 2019-11-05 | 深圳市富途网络科技有限公司 | 多进程处理方法、装置、终端设备及计算机可读存储介质 |
EP3819764A2 (en) * | 2020-09-29 | 2021-05-12 | Beijing Baidu Netcom Science And Technology Co. Ltd. | Service information processing method, apparatus, device and computer storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN115129469A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10805380B2 (en) | Data transmission method and device | |
WO2019000871A1 (zh) | 用于提供语音服务的方法、装置和服务器 | |
US9009853B2 (en) | Communication between web applications | |
US20180146072A1 (en) | Creation of a binding based on a description associated with a server | |
WO2021121407A1 (zh) | 一种虚拟机的容量更改方法及装置 | |
CN106843794B (zh) | 一种基于安卓的分屏显示方法和*** | |
CN114748873B (zh) | 界面渲染方法、装置、设备和存储介质 | |
CN115309470B (zh) | 微件的加载方法、装置、设备以及存储介质 | |
WO2023098732A1 (zh) | 跨设备的交互方法、装置、电子设备以及存储介质 | |
CN113971048A (zh) | 应用程序的启动方法及装置、存储介质及电子设备 | |
CN113157480A (zh) | 错误信息处理方法、装置、存储介质以及终端 | |
CN106095886B (zh) | 一种数据处理方法及其装置 | |
CN115129469B (zh) | 跨进程通信方法、装置、设备及存储介质 | |
CN112839065B (zh) | 信息处理方法、装置、第一设备及存储介质 | |
CN115242972B (zh) | 一种应用调用摄像头的方法和装置、电子设备及存储介质 | |
CN113760561A (zh) | 一种数据处理方法和装置 | |
CN114090118B (zh) | 启动小程序的方法、装置、设备以及存储介质 | |
CN107015874B (zh) | 数据传输控制方法、装置及终端 | |
CN106301906B (zh) | 基于分布式***的对象配置方法及装置 | |
CN112966201B (zh) | 对象处理方法、装置、电子设备以及存储介质 | |
CN113760274B (zh) | 一种前端组件逻辑注入方法和装置 | |
CN113485856B (zh) | 一种页面处理方法、装置、电子设备、介质及产品 | |
CN114095758B (zh) | 云图像截取方法、相关装置 | |
CN111552898A (zh) | 基于Html5的流程图绘制方法、装置、计算机设备及存储介质 | |
CN113094607B (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 |