CN113821357B - 基于socket的跨进程通信方法、介质及电子设备 - Google Patents
基于socket的跨进程通信方法、介质及电子设备 Download PDFInfo
- Publication number
- CN113821357B CN113821357B CN202111116398.1A CN202111116398A CN113821357B CN 113821357 B CN113821357 B CN 113821357B CN 202111116398 A CN202111116398 A CN 202111116398A CN 113821357 B CN113821357 B CN 113821357B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- program
- library
- socket
- algorithm library
- 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
- 238000000034 method Methods 0.000 title claims abstract description 167
- 238000004891 communication Methods 0.000 title claims abstract description 78
- 238000012544 monitoring process Methods 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
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/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
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
本发明提供一种基于socket的跨进程通信方法、介质及电子设备,所述方法包括:初始化socket监听程序并开始监听数据;在接收到第一算法调用请求时,调用第一算法库中的第一目标算法,其中,所述第一算法调用请求由链接于第二算法库的第一程序所发送,所述第一算法库包括一种或多种算法,所述第二算法库包括所述第一算法库中所有算法的接口和参数信息;在接收到第二算法调用请求时,调用所述第一算法库中的第二目标算法,其中,所述第二算法调用请求由链接于所述第二算法库的第二程序所发送,且所述第一目标算法与所述第二目标算法相同或不同。所述基于socket的跨进程通信方法能够实现所述第一程序和所述第二程序之间的跨进程通信。
Description
技术领域
本发明涉及通信领域,特别是涉及基于socket的跨进程通信方法、介质及电子设备。
背景技术
算法库又称作函数库,是由***或用户建立的、具有一定功能的算法的集合。存放于算法库中的算法称作库算法,库算法通常具有明确的功能、入口调用参数和返回值。现有技术中,算法库主要存放库算法的名称和对应的代码,以及连接过程中所需要的重定位信息。在使用时,程序只需包含相应的算法库即可直接调用其中的库算法,调用完成后返回执行结果即可实现同进程通信。
当不在同一个存储空间内的两个应用需要同时调用算法库中的同一库算法时,需要在这两个应用之间进行跨进程通信以便实现参数共享。然而,发明人在实际应用中发现,由于全局变量不支持跨进程共享,因此,对于任一库算法,当一个应用获取该库算法中的全局变量以后,其他应用无法通过共享全局变量的方式来实现不同应用之间的参数共享,故,如何提供一种能够实现跨进程通信的方案已成为相关技术人员亟需解决的技术问题之一。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于socket的跨进程通信方法、介质及电子设备,用于解决现有技术中存在的上述相关问题。
为实现上述目的及其他相关目的,本发明的第一方面提供一种基于socket的跨进程通信方法,所述方法包括:初始化socket监听程序并开始监听数据;在接收到第一算法调用请求时,调用第一算法库中的第一目标算法,其中,所述第一算法调用请求由链接于第二算法库的第一程序所发送,所述第一算法库包括一种或多种算法,所述第二算法库包括所述第一算法库中所有算法的接口和参数信息;在接收到第二算法调用请求时,调用所述第一算法库中的第二目标算法,其中,所述第二算法调用请求由链接于所述第二算法库的第二程序所发送,且所述第一目标算法与所述第二目标算法相同或不同。
于所述第一方面的一实施例中,调用所述第一算法库中的所述第一目标算法的实现方法包括:创建第一线程以调用所述第一算法库中的所述第一目标算法;调用所述第一算法库中的所述第二目标算法的实现方法包括:创建第二线程以调用所述第一算法库中的所述第二目标算法。
于所述第一方面的一实施例中,当所述第一线程调用的所述第一目标算法执行完成以后,将执行结果通过socket发送给所述第一程序;和/或当所述第二线程调用的所述第二目标算法执行完成以后,将执行结果通过socket发送给所述第二程序。
于所述第一方面的一实施例中,所述第一算法调用请求由所述第一程序利用所述第二算法库通过socket发送;和/或所述第二算法调用请求由所述第二程序利用所述第二算法库通过socket发送。
于所述第一方面的一实施例中,所述方法还包括:调整所述第一程序链接的算法库,以使所述第一程序链接于所述第一算法库;调整所述第二程序链接的算法库,以使所述第二程序链接于所述第一算法库。
本发明的第二方面提供一种基于socket的跨进程通信方法,应用于从程序,所述方法包括:链接至第二算法库,其中,所述第二算法库包括第一算法库中所有算法的接口和参数信息,所述第一算法库包括一种或多种算法;利用所述第二算法库通过socket发送算法调用请求至主程序,以使所述主程序调用所述第一算法库中的目标算法。
于所述第二方面的一实施例中,所述方法还包括:当不需要进行跨进程通信时,调整所述从程序链接的算法库,以使所述从程序链接至所述第一算法库。
本发明的第三方面提供一种基于socket的跨进程通信方法,应用于一软件***,所述软件***包括主程序、第一程序和第二程序,其中:所述第一程序和所述第二程序采用本发明第二方面任一项所述基于socket的跨进程通信方法向所述主程序发送算法调用请求;所述主程序采用本发明第一方面任一项所述基于socket的跨进程通信方法响应所述第一程序和所述第二程序发送的算法调用请求。
本发明的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明第一方面、第二方面或第三方面任一项所述基于socket的跨进程通信方法。
本发明的第五方面提供一种电子设备,所述电子设备包括:存储器,存储有一计算机程序;处理器,与所述存储器通信相连,调用所述计算机程序时执行本发明第一方面、第二方面或第三方面任一项所述基于socket的跨进程通信方法。
如上所述,本发明一个或多个实施例中所述基于socket的跨进程通信方法具有以下有益效果:
所述基于socket的跨进程通信方法在接收到第一算法调用请求时,调用第一算法库中的第一目标算法,在接收到第二算法调用请求时,调动所述第一算法库中的第二目标算法。由于对所述第一目标算法和所述第二目标算法的调用均在同一进程中实现,因此,所述第一目标算法和所述第二目标算法在调用中可以共享彼此的参数。对于第一程序和第二程序来说,这种参数共享使得所述第一程序能够获取所述第二程序的参数,所述第二程序能够获取所述第一程序的参数,故,所述基于socket的跨进程通信方法能够实现所述第一程序和所述第二程序之间的跨进程通信。
附图说明
图1显示为本发明所述基于socket的跨进程通信方法于一具体实施例中的流程图。
图2显示为本发明所述另一种基于socket的跨进程通信方法于一具体实施例中的流程图。
图3显示为本发明所述又一种基于socket的跨进程通信方法于一具体实施例中的流程图。
图4显示为本发明所述又一种基于socket的跨进程通信方法于一具体实施例中的流程图。
图5显示为本发明所述电子设备于一具体实施例中的结构示意图。
元件标号说明
500 电子设备
510 存储器
520 处理器
530 显示器
S11~S13 步骤
S21~S22 步骤
S31~S32 步骤
S41~S49 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。此外,在本文中,诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
由于全局变量不支持跨进程共享,因此,对于任一库算法,当一个应用获取该库算法中的全局变量以后,其他应用无法通过共享全局变量的方式来实现不同应用之间的参数共享。针对这一问题,请参阅图1,于本发明的一实施例中提供一种基于socket的跨进程通信方法,所述方法应用于一主程序,包括:
S11,初始化socket监听程序并开始监听数据。具体地,所述主程序启动主服务以与从程序之间进行数据互传,其后,所述主程序初始化socket监听程序并开始监听数据,此时,所述主程序和/或从程序可以向监听接口发送数据以实现二者之间的通信,所述从程序例如为第一程序和第二程序。
S12,在接收到第一算法调用请求时,调用第一算法库中的第一目标算法,其中,所述第一算法调用请求由链接于第二算法库的第一程序所发送。所述第一算法库和所述第二算法库均为封装的库,所述第一算法库包括一种或多种算法,所述第二算法库包括所述第一算法库中所有算法的接口和参数信息,因此,所述第二算法库可以看作所述第一算法库的映射或复制。此外,所述第二算法库中不包含具体的算法实现,其为专门用于通信的库。
具体地,对于所述第一目标算法来说,由于所述第二算法库中包含所述第一目标算法的接口和参数信息,当所述第一程序需要调用所述第一目标算法时,可以发送第一算法调用请求至所述第二算法库。由于所述第二算法库中并不包含所述第一目标算法的具体实现,且所述第二算法库为专门用于通信的库,因此,当所述第二算法库接收到所述第一算法调用请求时,不会具体执行所述第一目标算法,而是将所述第一算法调用请求发送至所述主程序。优选地,所述第二算法库通过socket将所述第一算法调用请求发送至所述主程序。
S13,在接收到第二算法调用请求时,调用所述第一算法库中的第二目标算法,其中,所述第二算法调用请求由链接于所述第二算法库的第二程序所发送,且所述第一目标算法与所述第二目标算法相同或不同。所述第二程序发送所述第二算法调用请求至所述主程序的实现方法与所述第一程序类似,此处不做过多赘述。
需要说明的是,本实施例中由于所述第二算法库不包含算法的具体实现,其不涉及参数共享的问题,因此,多个从程序可以同时调用所述第二算法库中的算法。
可选地,所述方法还包括:将所述第一目标算法的执行结果发送至所述第一程序,将所述第二目标算法的执行结果发送至所述第二程序。此时,对于所述第一程序来说,其操作包括发送第一算法调用请求并接收第一目标算法的执行结果,因此,所述主程序响应于所述第一算法调用请求而调用所述第一目标算法并将执行结果发送至所述第一程序的过程,可以看作所述第一程序调用所述第一目标算法的过程。同理,所述主程序响应于所述第二算法调用请求而调用所述第二目标算法并将执行结果发送至所述第二程序的过程,可以看作所述第二程序调用所述第二目标算法的过程。由于所述第一目标算法和所述第二目标算法均在所述主程序中调用,且算法的执行结果均存储于所述主程序中,因此,所述第一目标算法和所述第二目标算法在调用时可以共享彼此的参数,由此进一步可知,所述第一程序在调用所述第一目标算法以及所述第二程序在调用所述第二目标算法时可以实现参数共享,故,本实施例所述基于socket的跨进程通信方法能够实现所述第一程序和所述第二程序之间的跨进程通信。
本实施例中仅以第一程序和第二程序为例介绍了两个程序之间的跨进程通信方法,应当理解的是,所述基于socket的跨进程通信方法同样适用于三个或三个以上程序之间的跨进程通信,本发明对从程序的数量不做限制。
于一些实施例中,当所述主程序接收到第一算法调用请求和第二算法调用请求时,会根据预设的顺序(例如,请求的接收顺序)依次执行对应的算法。例如,假设所述第一目标算法和所述第二目标算法均为算法A,且算法A的执行耗时5s,此时,若第一程序请求调用算法A,则所述主程序会响应其请求而调用并执行算法A,然而,若第二程序同时也请求调用算法A,所述主程序不会立即响应其请求而是在第一程序对算法A的调用请求响应完之后,也就是5s之后,才会响应第二程序的调用请求,这种情况会导致第二程序出现较大的延迟,这种延迟对许多产品来说很难接受。
针对上述问题,于本发明的一实施例中,调用所述第一算法库中的所述第一目标算法的实现方法包括:创建第一线程以调用所述第一算法库中的所述第一目标算法;调用所述第一算法库中的所述第二目标算法的实现方法包括:创建第二线程以调用所述第一算法库中的所述第二目标算法。其中,所述第一线程与所述第二线程相互独立,二者可以采用串行方式执行,也可以采用并行方式执行。
当所述第一线程和所述第二线程以并行方式执行时,能够有效减少程序的延迟。例如,假设所述第一目标算法和所述第二目标算法均为算法A,且算法A的执行耗时5s,此时,若第一程序请求调用算法A,则所述主程序会响应其请求而创建第一线程以执行算法A,若第二程序同时也请求调用算法A,则所述主程序会响应其请求而创建第二线程以执行算法A。对比可知,此种方式能够减少第二程序的延迟。此外,由于不同线程之间可以共享变量,因此,此种方式同样能够实现所述第一程序和所述第二程序之间的跨进程通信。
于本发明的一实施例中,所述方法还包括:当所述第一线程调用的所述目标算法执行完成以后,将执行结果通过socket发送给所述第一程序;和/或当所述第二线程调用的所述目标算法执行完成以后,将执行结果通过socket发送给所述第二程序。
于本发明的一实施例中,所述第一算法调用请求由所述第一程序利用所述第二算法库通过socket发送;和/或所述第二算法调用请求由所述第二程序利用所述第二算法库通过socket发送。
于本发明的一实施例中,当所述第一程序和所述第二程序不需要进行跨进程通信时,所述方法还包括:调整所述第一程序链接的算法库,以使所述第一程序链接于所述第一算法库;调整所述第二程序链接的算法库,以使所述第二程序链接于所述第一算法库。
具体地,当所述第一程序链接于所述第一算法库时,所述第一程序能够直接调用所述第一目标算法,此时能够实现同进程通信。与链接至所述第二算法库时相比,此种方式能够有效地减少***开销。此外,对所述第一程序链接的算法库的调整可以通过修改所述第一程序链接的库名称实现,在此过程中仅需要改动极少量的代码。因此,本实施例允许用户通过少量的代码修改来实现跨进程通信机制与同进程通信机制的切换。
本实施例中,对所述第二程序链接的算法库也可以通过类似的方式进行调整,此处不做过多赘述。
本发明还提供另一种基于socket的跨进程通信方法,应用于从程序。具体地,请参阅图2,所述方法包括:
S21,链接至第二算法库。其中,所述第一算法库和所述第二算法库均为封装的库,所述第一算法库包括一种或多种算法,所述第二算法库包括所述第一算法库中所有算法的接口和参数信息,因此,所述第二算法库可以看作所述第一算法库的映射或复制。此外,所述第二算法库中不包含具体的算法实现,其为专门用于通信的库。
S22,利用所述第二算法库通过socket发送算法调用请求至主程序,以使主程序调用所述第一算法库中的目标算法。具体地,由于所述第二算法库中包含所述第一目标算法的接口和参数信息,当所述从程序需要调用目标算法时,可以发送算法调用请求至所述第二算法库。由于所述第二算法库中并不包含所述目标算法的具体实现,且所述第二算法库为专门用于通信的库,因此,当所述第二算法库接收到所述算法调用请求时,不会具体执行所述目标算法,而是将所述算法调用请求通过socket发送至所述主程序,以使所述主程序在接收到所述算法调用请求时调用所述第一算法库中的所述目标算法。其中,所述算法调用请求包括所述目标算法的名字以及参数。
可选地,所述方法还包括:通过socket接收所述主程序对所述目标算法的执行结果。此时,所述从程序执行的操作包括发送算法调用请求以及接收算法执行结果,这些操作实现了所述从程序对所述目标算法的调用,对于所述从程序来说,此种调用方式与直接链接至所述第一算法库时的调用方式具有相同的操作。
可选地,所述方法还包括:当不需要进行跨进程通信时,调整所述从程序链接的算法库,以使所述从程序链接至所述第一算法库。具体地,当所述从程序链接于所述第一算法库时,所述从程序能够直接调用所述目标算法,此时能够实现同进程通信。与链接至所述第二算法库时相比,此种方式能够有效地减少***开销。此外,对所述从程序链接的算法库的调整可以通过修改所述从程序链接的库名称实现,在此过程中仅需要改动极少量的代码。因此,本实施例允许用户通过少量的代码修改来实现跨进程通信机制与同进程通信机制的切换。
本发明还提供又一种基于socket的跨进程通信方法,应用于一软件***,所述软件***包括主程序、第一程序和第二程序,其中,所述第一程序和所述第二程序为从程序。具体地,请参阅图3,所述方法包括:
S31,所述第一程序和所述第二程序采用图2所示基于socket的跨进程通信方法向所述主程序发送算法调用请求。
S32,所述主程序采用图1所示基于socket的跨进程通信方法响应所述第一程序和所述第二程序发送的算法调用请求。
于本发明的一实施例中,所述基于socket的跨进程通信方法应用于一软件***,所述软件***包括主程序、第一程序和第二程序,所述主程序链接至第一算法库,所述第一程序和所述第二程序链接至第二算法库,其中,所述第一算法库包括一种或多种算法,所述第二算法库与所述第一算法库一一对应,为所述第一算法库的复制或映射,其中包含所述第一算法库中所有算法的接口和参数信息,但是不包含算法的具体实现,即,所述第二算法库仅为一个通信机制,其不进行具体的算法处理。请参阅图4,本实施例中所述基于socket的跨进程通信方法包括:
S41,所述主程序开启主服务,初始化socket监听程序并开始监听数据。
S42,所述第一程序在需要调用第一目标算法时,向所述第二算法库发送第一算法调用请求。
S43,所述第二算法库在接收到所述第一算法调用请求以后,将所述第一算法调用请求发送至所述主程序。
S44,所述主程序在接收到所述第一算法调用请求以后,创建第一线程以从所述第二算法库中调用所述第一目标算法并执行,且将执行结果发送至所述第一程序。
S45,所述第一程序接收所述主程序发送的、所述第一目标算法的执行结果。
S46,所述第二程序在需要调用第二目标算法时,向所述第二算法库发送第二算法调用请求,其中,所述第二目标算法与所述第一目标算法相同或不同。由于所述第二算法库不进行算法处理而仅为一通信机制,因此,所述第二算法库中的同一算法可以同时被所述第一程序和所述第二程序所调用。
S47,所述第二算法库在接收到所述第二算法调用请求以后,将所述第二算法调用请求发送至所述主程序。
S48,所述主程序在接收到所述第二算法调用请求以后,创建第二线程以从所述第二算法库中调用所述第二目标算法并执行,且将执行结果发送至所述第二程序。其中,所述第二线程与所述第一线程相互独立。
S49,所述第二程序接收所述主程序发送的、所述第二目标算法的执行结果。
需要说明的是,上述步骤S42~S45与步骤S46~S49可以同时执行,也可以先后执行,本发明对此不做限制。此外,以上仅以所述第一程序和所述第二程序为例对所述基于socket的跨进程通信方法进行了介绍,但本发明并不以此为限,实际应用中所述基于socket的跨进程通信方法也可以支持三个或以上的程序进行跨进程通信。
根据以上描述可知,本实施例所述基于socket的跨进程通信方法使得同一库算法可以同时被多个进程调用,从而满足程序的实际需求,而在相关技术中该库算法是不能同时被多个进程调用的。此外,所述第一进程和所述第二进程相互独立,且二者以并行方式执行时能够减少算法执行的延迟。
基于以上对所述基于socket的跨进程通信方法的描述,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现图1、2、3或4所示基于socket的跨进程通信方法。
基于以上对所述基于socket的跨进程通信方法的描述,本发明还提供一种电子设备。具体地,请参阅图5,所述电子设备500包括存储器510和处理器520,其中,所述存储器510存储有计算机程序,所述处理器520与所述存储器510通信相连,用于调用所述计算机程序时执行图1、2、3或4所示基于socket的跨进程通信方法。
可选地,所述电子设备500还包括显示器530,所述显示器530与所述存储器510和所述处理器520通信相连,用于显示所述基于socket的跨进程通信方法的相关GUI交互界面。
本发明所述基于socket的跨进程通信方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
综上所述,本发明所述基于socket的跨进程通信方法在接收到第一算法调用请求时,调用第一算法库中的第一目标算法,在接收到第二算法调用请求时,调动所述第一算法库中的第二目标算法。当所述第一目标算法和所述第二目标算法相同时,由于对所述第一目标算法和所述第二目标算法的调用均在同一进程中实现,因此,所述第一目标算法和所述第二目标算法在调用中可以共享彼此的参数。对于第一程序和第二程序来说,这种参数共享使得所述第一程序能够获取所述第二程序的参数,所述第二程序能够获取所述第一程序的参数,故,所述基于socket的跨进程通信方法能够实现所述第一程序和所述第二程序之间的跨进程通信。因此,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种基于socket的跨进程通信方法,其特征在于,应用于主程序,所述方法包括:
初始化socket监听程序并开始监听数据;
在接收到第一算法调用请求时,调用第一算法库中的第一目标算法,其中,所述第一算法调用请求由链接于第二算法库的第一程序所发送,所述第一算法库包括一种或多种算法,所述第二算法库包括所述第一算法库中所有算法的接口和参数信息;
在接收到第二算法调用请求时,调用所述第一算法库中的第二目标算法,其中,所述第二算法调用请求由链接于所述第二算法库的第二程序所发送,且所述第一目标算法与所述第二目标算法相同或不同。
2.根据权利要求1所述的方法,其特征在于:
调用所述第一算法库中的所述第一目标算法的实现方法包括:创建第一线程以调用所述第一算法库中的所述第一目标算法;
调用所述第一算法库中的所述第二目标算法的实现方法包括:创建第二线程以调用所述第一算法库中的所述第二目标算法。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第一线程调用的所述第一目标算法执行完成以后,将执行结果通过socket发送给所述第一程序;和/或
当所述第二线程调用的所述第二目标算法执行完成以后,将执行结果通过socket发送给所述第二程序。
4.根据权利要求1所述的方法,其特征在于:
所述第一算法调用请求由所述第一程序利用所述第二算法库通过socket发送;和/或
所述第二算法调用请求由所述第二程序利用所述第二算法库通过socket发送。
5.根据权利要求1所述的方法,其特征在于,当不需要进行跨进程通信时,所述方法还包括:
调整所述第一程序链接的算法库,以使所述第一程序链接于所述第一算法库;
调整所述第二程序链接的算法库,以使所述第二程序链接于所述第一算法库。
6.一种基于socket的跨进程通信方法,其特征在于,应用于从程序,所述方法包括:
链接至第二算法库,其中,所述第二算法库包括第一算法库中所有算法的接口和参数信息,所述第一算法库包括一种或多种算法;
利用所述第二算法库通过socket发送算法调用请求至主程序,以使所述主程序调用所述第一算法库中的目标算法。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当不需要进行跨进程通信时,调整所述从程序链接的算法库,以使所述从程序链接至所述第一算法库。
8.一种基于socket的跨进程通信方法,其特征在于,应用于一软件***,所述软件***包括主程序、第一程序和第二程序,其中:
所述第一程序和所述第二程序采用权利要求6或7所述基于socket的跨进程通信方法向所述主程序发送算法调用请求;
所述主程序采用权利要求1-5任一项所述基于socket的跨进程通信方法响应所述第一程序和所述第二程序发送的算法调用请求。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现权利要求1-8任一项所述基于socket的跨进程通信方法。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有一计算机程序;
处理器,与所述存储器通信相连,调用所述计算机程序时执行权利要求1-8任一项所述基于socket的跨进程通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111116398.1A CN113821357B (zh) | 2021-09-23 | 2021-09-23 | 基于socket的跨进程通信方法、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111116398.1A CN113821357B (zh) | 2021-09-23 | 2021-09-23 | 基于socket的跨进程通信方法、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821357A CN113821357A (zh) | 2021-12-21 |
CN113821357B true CN113821357B (zh) | 2024-06-07 |
Family
ID=78920898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111116398.1A Active CN113821357B (zh) | 2021-09-23 | 2021-09-23 | 基于socket的跨进程通信方法、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821357B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507257A (zh) * | 2020-04-16 | 2020-08-07 | 奇安信科技集团股份有限公司 | 图片处理方法、装置、***、介质及程序 |
CN112596931A (zh) * | 2020-12-31 | 2021-04-02 | 五八有限公司 | 一种跨进程通信方法、装置、电子设备及存储介质 |
CN112965794A (zh) * | 2021-02-19 | 2021-06-15 | 西安智周深鉴信息科技集团有限公司 | 算法调用方法、电子设备及存储介质 |
CN113377448A (zh) * | 2021-06-08 | 2021-09-10 | 展讯通信(天津)有限公司 | 业务功能执行方法和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930681B2 (en) * | 2010-12-08 | 2015-01-06 | Intel Corporation | Enhancing performance by instruction interleaving and/or concurrent processing of multiple buffers |
US9904574B2 (en) * | 2014-12-23 | 2018-02-27 | Successfactors, Inc | Parallel computing without requiring antecedent code deployment |
-
2021
- 2021-09-23 CN CN202111116398.1A patent/CN113821357B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507257A (zh) * | 2020-04-16 | 2020-08-07 | 奇安信科技集团股份有限公司 | 图片处理方法、装置、***、介质及程序 |
CN112596931A (zh) * | 2020-12-31 | 2021-04-02 | 五八有限公司 | 一种跨进程通信方法、装置、电子设备及存储介质 |
CN112965794A (zh) * | 2021-02-19 | 2021-06-15 | 西安智周深鉴信息科技集团有限公司 | 算法调用方法、电子设备及存储介质 |
CN113377448A (zh) * | 2021-06-08 | 2021-09-10 | 展讯通信(天津)有限公司 | 业务功能执行方法和电子设备 |
Non-Patent Citations (1)
Title |
---|
Elastos跨进程跨语言对象调用的研究与实现;徐凡;陈榕;;电脑知识与技术;20100205(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113821357A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100509794B1 (ko) | 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 | |
US8332845B2 (en) | Compile timing based on execution frequency of a procedure | |
US20020144003A1 (en) | Inter-thread communications between different components using double buffer | |
CN108121594B (zh) | 一种进程管理方法及装置 | |
US11456914B2 (en) | Implementing affinity and anti-affinity with KUBERNETES | |
CN107818023B (zh) | 基于线程的消息处理方法、智能设备及存储介质 | |
CN107977260B (zh) | 任务提交方法及装置 | |
WO2024002299A1 (zh) | 应用管理方法、应用订阅方法及相关设备 | |
CN111459676A (zh) | 一种节点资源管理方法、装置及存储介质 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN113434283B (zh) | 服务调度方法及装置、服务器、计算机可读存储介质 | |
CN113419818B (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN113821357B (zh) | 基于socket的跨进程通信方法、介质及电子设备 | |
CN114090483A (zh) | 一种基于协程的rdma通信方法、装置及存储介质 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
US20040024856A1 (en) | Method and system for a services environment management engine | |
CN109756481B (zh) | 基于互联网异地分布式对接第三方***的实现方法及*** | |
CN111168668A (zh) | 一种机器人的控制方法及机器人 | |
CN115629809A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115168062A (zh) | 控制方法、装置、设备及存储介质 | |
WO2019228237A1 (zh) | 数据处理方法以及计算机设备 | |
JP2018120307A (ja) | アクセラレータ処理管理装置、ホスト装置、アクセラレータ処理実行システム、方法およびプログラム | |
CN112559148A (zh) | 有序任务的执行方法、执行装置和执行*** | |
CN110489940A (zh) | 机器人控制类应用程序的权限管理方法及装置 | |
CN111078571A (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 |