CN105607892A - 一种多程序的并发执行方法和*** - Google Patents
一种多程序的并发执行方法和*** Download PDFInfo
- Publication number
- CN105607892A CN105607892A CN201510708692.XA CN201510708692A CN105607892A CN 105607892 A CN105607892 A CN 105607892A CN 201510708692 A CN201510708692 A CN 201510708692A CN 105607892 A CN105607892 A CN 105607892A
- Authority
- CN
- China
- Prior art keywords
- concurrent
- programs
- concurrent execution
- numerical value
- program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种多程序并发执行方法和***包括:所述方法和***获取预先配置的并发执行量,以及获取一预先编写的待并发执行的目标子程序,在此基础上,并发执行所述目标子程序的程序副本,其中,所述程序副本的并发数量为所述并发执行量。可见,本申请通过并发执行所需数目的程序副本而非实体程序,实现了多程序的并发执行,从而应用本申请仅编写一个独立(独立于主程序)的待并发执行的子程序即可,无需在主程序中重复编写多个实体程序,简化了程序结构;且本申请无需调用多个实体程序,可节省现有方案在并发执行多个实体程序时需占用的界面资源、实体程序资源等后台资源,进一步可提升LabVIEW等软件工具在并发执行多程序时的并发量。
Description
技术领域
本发明属于多程序的并发处理领域,尤其涉及一种多程序的并发执行方法和***。
背景技术
目前,LabVIEW等软件工具并发执行多个程序时,需预先在同一个主程序中重复编写多个相同的程序代码,即需预先在主程序中纳入所需并发数目的多个实体程序,后续通过调用、执行所述多个实体程序,来实现多程序的并发执行功能。
上述多程序并发执行方案,由于需要重复编写大量代码,会导致程序结构臃肿,开发周期拉长;同时此种方案,由于在主程序中纳入了所需并发数目的多个实体程序,且通过调用、执行多个实体程序实现多程序并发执行,会导致并发执行过程需占用较多的后台资源,比如需占用较多的界面资源以及实体程序资源等,最终会影响LabVIEW等软件工具在并发执行多程序时的并发量。
发明内容
有鉴于此,本发明的目的在于提供一种多程序的并发执行方法和***,旨在解决现有的多程序并发执行方案存在的占用后台资源较多这一问题,以提升LabVIEW等软件工具在并发执行多程序时的并发量。
为此,本发明公开如下技术方案:
一种多程序的并发执行方法,包括:
获取预先配置的并发执行量;
获取一预先编写的待并发执行的目标子程序;
并发执行所述目标子程序的程序副本;其中,所述程序副本的并发数量为所述并发执行量。
上述方法,优选的,所述并发执行量为异步调用参数的数值,则所述获取预先配置的并发执行量包括:
获取预先配置的异步调用参数的数值,所述异步调用参数的数值通过预先编写的主程序配置。
上述方法,优选的,所述获取一预先编写的待并发执行的目标子程序包括:
通过所述主程序获取一预先编写的待并发执行的目标子程序;其中,所述目标子程序独立于所述主程序之外。
上述方法,优选的,所述并发执行所述目标子程序的程序副本包括:
通过所述主程序对所述目标子程序进行异步调用,所述异步调用的次数为所述异步调用参数的数值;
基于所述异步调用,并发执行数量为所述异步调用参数的数值的程序副本;每个所述程序副本为所述目标子程序的副本。
一种多程序的并发执行***,包括:
第一获取模块,用于获取预先配置的并发执行量;
第二获取模块,用于获取一预先编写的待并发执行的目标子程序;
并发执行模块,用于并发执行所述目标子程序的程序副本;其中,所述程序副本的并发数量为所述并发执行量。
上述***,优选的,所述并发执行量为异步调用参数的数值,则所述第一获取模块包括:
第一获取单元,用于获取预先配置的异步调用参数的数值,所述异步调用参数的数值通过预先编写的主程序配置。
上述***,优选的,所述第二获取模块包括:
第二获取单元,用于通过所述主程序获取一预先编写的待并发执行的目标子程序;其中,所述目标子程序独立于所述主程序之外。
上述***,优选的,所述并发执行模块包括:
异步调用单元,用于通过所述主程序对所述目标子程序进行异步调用,异步调用的次数为所述异步调用参数的数值;
副本并发执行单元,用于基于所述异步调用,并发执行数量为所述异步调用参数的数值的程序副本;每个所述程序副本为所述目标子程序的副本。
由以上方案可知,本申请公开的多程序并发执行方法和***包括:获取预先配置的并发执行量,以及获取一预先编写的待并发执行的目标子程序,在此基础上,并发执行所述目标子程序的程序副本,其中,所述程序副本的并发数量为所述并发执行量。可见,本申请通过并发执行所需数目的程序副本而非实体程序,实现了多程序的并发执行,从而应用本申请仅编写一个独立(独立于主程序)的待并发执行的子程序即可,无需在主程序中重复编写多个实体程序,简化了程序结构;且本申请无需调用多个实体程序,可节省现有方案在并发执行多个实体程序时需占用的界面资源、实体程序资源等后台资源,进一步可提升LabVIEW等软件工具在并发执行多程序时的并发量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的多程序的并发执行方法流程图;
图2是本发明实施例二提供的多程序的并发执行***的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
LabVIEW:是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境。但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
异步调用:asynchronouscall,是一种可以无需等待被调用函数/程序的返回值,就让操作继续进行的方法。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一公开一种多程序的并发执行方法,参考图1,所述方法可以包括以下步骤:
S101:获取预先配置的并发执行量。
S102:获取一预先编写的待并发执行的目标子程序。
S103:并发执行所述目标子程序的程序副本;其中,所述程序副本的并发数量为所述并发执行量。
本申请通过并发执行所需数目的程序副本而非实体程序,来解决现有技术在实现多程序的并发执行时,因需预先在主程序中重复编写多个实体程序,以及需调用、执行所述多个实体程序,而存在的程序结构臃肿以及占用的后台资源较多等问题。
基于此,应用本申请时,需预先编写一主程序,以及一独立于所述主程序之外的待并发执行的目标子程序,所述主程序应包含实现多程序并发执行功能所需的子程序调用方式/策略代码及并发执行量的配置代码,后续,所述主程序可通过利用所述子程序调用方式/策略代码,对所述目标子程序进行所需并发数目的调用,为多程序并发执行功能的实现提供代码调用基础。为确保多程序并发执行的有效进行,实际应用本申请时,可预先对所述主程序及所述目标子程序进行功能验证。
本实施例具体采用异步调用方式,来循环调用独立于主程序之外的所述目标子程序,异步调用所述目标子程序的次数应与所述并发执行量的大小相同,因此,技术人员可通过配置异步调用参数的数值实现对所需的并发执行量进行配置。以LabVIEW为例,技术人员只需在LabVIEW的相应界面输入异步调用次数,主程序在接收到技术人员的输入数值时,通过异步调用插件对异步调用参数进行配置,将其配置为所述输入数值,之后可基于异步调用参数的数值实现对所述目标子程序进行异步调用。
在异步调用所述目标子程序的基础上,本申请通过并发执行所述目标子程序的程序副本,来实现多程序的并发执行,其中,所述程序副本的并发数量即为所述异步调用参数的数值。仍以LabVIEW为例,技术人员可通过将预先生成的待并发执行的子VI(labview程序文件)设置为“预先分副本重入执行”,实现后续对所述子VI进行分副本并发执行。
本申请在实现多程序的并发执行时,由于无需调用多个实体程序,从而可节省多个实体程序并发执行时所需占用的界面资源(各副本在后台隐藏执行)、实体程序资源等后台资源,进一步可提升LabVIEW等软件工具在并发执行多程序时的并发量。接下来,本实施例通过一具体测试实例对本申请的优势进行验证。
测试要求:5000个客户端同时登陆A服务器并同时与A服务器进行数据交互。由于采用真实客户端,需使用大量PC(PersonalComputer个人计算机),且无法有效实现同时登录及数据交互,因此要求使用一台计算机通过程序控制,来模拟各个客户端的同时登陆及与服务器的数据交互行为(相当于通过计算机并发执行多个相同的客户端程序)。
采用传统的多程序并发执行方案:预先在一个主程序中重复建立多个相同的客户端程序。经过验证,在客户端程序数量达到32时,运行主程序,计算机的CPU(CentralProcessingUnit,中央处理器)占用率达90%-96%。
采用本申请的多程序并发执行方案:预先编写一个主程序和一个独立的客户端程序,主程序通过异步调用的方式,循环调用多次客户端程序,并通过并发执行客户端程序的多个副本,来模拟多个客户端的同时登陆及与服务器的数据交互行为。经过验证,一个主程序异步调用客户端程序的次数达到5000时,计算机CPU占用率达到90%以上。
通过以上实例中两种测试方案的比对情况,可充分验证本申请具有的资源占用少,并发量高这一优势。
本申请公开的多程序并发执行方法包括:获取预先配置的并发执行量,以及获取一预先编写的待并发执行的目标子程序,在此基础上,并发执行所述目标子程序的程序副本,其中,所述程序副本的并发数量为所述并发执行量。可见,本申请通过并发执行所需数目的程序副本而非实体程序,实现了多程序的并发执行,从而应用本申请仅编写一个独立(独立于主程序)的待并发执行的子程序即可,无需在主程序中重复编写多个实体程序,简化了程序结构;且本申请无需调用多个实体程序,可节省现有方案在并发执行多个实体程序时需占用的界面资源、实体程序资源等后台资源,进一步可提升LabVIEW等软件工具在并发执行多程序时的并发量。
实施例二
本发明实施例二公开一种多程序的并发执行***,参考图2,所述***包括第一获取模块100、第二获取模200和并发执行模块300。
第一获取模块100,用于获取预先配置的并发执行量。
其中,所述并发执行量为异步调用参数的数值,则所述第一获取模块包括:第一获取单元,用于获取预先配置的异步调用参数的数值,所述异步调用参数的数值通过预先编写的主程序配置。
第二获取模块200,用于获取一预先编写的待并发执行的目标子程序。
所述第二获取模块包括第二获取单元,用于通过所述主程序获取一预先编写的待并发执行的目标子程序;其中,所述目标子程序独立于所述主程序之外。
并发执行模块300,用于并发执行所述目标子程序的程序副本;其中,所述程序副本的并发数量为所述并发执行量。
所述并发执行模块300包括异步调用单元和副本并发执行单元。异步调用单元,用于通过所述主程序对所述目标子程序进行异步调用,异步调用的次数为所述异步调用参数的数值;副本并发执行单元,用于基于所述异步调用,并发执行数量为所述异步调用参数的数值的程序副本;每个所述程序副本为所述目标子程序的副本。
对于本发明实施例二公开的多程序的并发执行***而言,由于其与实施例一公开的多程序的并发执行方法相对应,所以描述的比较简单,相关相似之处请参见实施例一中多程序的并发执行方法部分的说明即可,此处不再详述。
为了描述的方便,描述以上***或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种多程序的并发执行方法,其特征在于,包括:
获取预先配置的并发执行量;
获取一预先编写的待并发执行的目标子程序;
并发执行所述目标子程序的程序副本;其中,所述程序副本的并发数量为所述并发执行量。
2.根据权利要求1所述的方法,其特征在于,所述并发执行量为异步调用参数的数值,则所述获取预先配置的并发执行量包括:
获取预先配置的异步调用参数的数值,所述异步调用参数的数值通过预先编写的主程序配置。
3.根据权利要求2所述的方法,其特征在于,所述获取一预先编写的待并发执行的目标子程序包括:
通过所述主程序获取一预先编写的待并发执行的目标子程序;其中,所述目标子程序独立于所述主程序之外。
4.根据权利要求3所述的方法,其特征在于,所述并发执行所述目标子程序的程序副本包括:
通过所述主程序对所述目标子程序进行异步调用,所述异步调用的次数为所述异步调用参数的数值;
基于所述异步调用,并发执行数量为所述异步调用参数的数值的程序副本;每个所述程序副本为所述目标子程序的副本。
5.一种多程序的并发执行***,其特征在于,包括:
第一获取模块,用于获取预先配置的并发执行量;
第二获取模块,用于获取一预先编写的待并发执行的目标子程序;
并发执行模块,用于并发执行所述目标子程序的程序副本;其中,所述程序副本的并发数量为所述并发执行量。
6.根据权利要求5所述的***,其特征在于,所述并发执行量为异步调用参数的数值,则所述第一获取模块包括:
第一获取单元,用于获取预先配置的异步调用参数的数值,所述异步调用参数的数值通过预先编写的主程序配置。
7.根据权利要求6所述的***,其特征在于,所述第二获取模块包括:
第二获取单元,用于通过所述主程序获取一预先编写的待并发执行的目标子程序;其中,所述目标子程序独立于所述主程序之外。
8.根据权利要求7所述的***,其特征在于,所述并发执行模块包括:
异步调用单元,用于通过所述主程序对所述目标子程序进行异步调用,异步调用的次数为所述异步调用参数的数值;
副本并发执行单元,用于基于所述异步调用,并发执行数量为所述异步调用参数的数值的程序副本;每个所述程序副本为所述目标子程序的副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510708692.XA CN105607892A (zh) | 2015-10-26 | 2015-10-26 | 一种多程序的并发执行方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510708692.XA CN105607892A (zh) | 2015-10-26 | 2015-10-26 | 一种多程序的并发执行方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105607892A true CN105607892A (zh) | 2016-05-25 |
Family
ID=55987848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510708692.XA Pending CN105607892A (zh) | 2015-10-26 | 2015-10-26 | 一种多程序的并发执行方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105607892A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321192A (zh) * | 2019-04-29 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种呈现寄宿程序的方法与设备 |
CN111246282A (zh) * | 2020-03-16 | 2020-06-05 | 青岛海信传媒网络技术有限公司 | 显示设备中节目信息获取方法及显示设备 |
CN114911474A (zh) * | 2022-07-18 | 2022-08-16 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种基于计算模块的数据处理方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650260A (zh) * | 2002-05-01 | 2005-08-03 | 皇家飞利浦电子股份有限公司 | 基于存储区的数据预取 |
US9015720B2 (en) * | 2008-04-30 | 2015-04-21 | Advanced Micro Devices, Inc. | Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program |
-
2015
- 2015-10-26 CN CN201510708692.XA patent/CN105607892A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650260A (zh) * | 2002-05-01 | 2005-08-03 | 皇家飞利浦电子股份有限公司 | 基于存储区的数据预取 |
US9015720B2 (en) * | 2008-04-30 | 2015-04-21 | Advanced Micro Devices, Inc. | Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program |
Non-Patent Citations (1)
Title |
---|
无: "异步调用VI的多个实例实现并行执行", 《HTTP://ZONE.NI.COM/REFERENCE/ZHS-XX/HELP/371361J-0118/LVHOWTO/ACBR_CALL_CLONES/》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321192A (zh) * | 2019-04-29 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种呈现寄宿程序的方法与设备 |
CN110321192B (zh) * | 2019-04-29 | 2023-03-31 | 上海连尚网络科技有限公司 | 一种呈现寄宿程序的方法与设备 |
CN111246282A (zh) * | 2020-03-16 | 2020-06-05 | 青岛海信传媒网络技术有限公司 | 显示设备中节目信息获取方法及显示设备 |
CN111246282B (zh) * | 2020-03-16 | 2022-03-25 | 青岛海信传媒网络技术有限公司 | 显示设备中节目信息获取方法及显示设备 |
CN114911474A (zh) * | 2022-07-18 | 2022-08-16 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种基于计算模块的数据处理方法、设备及存储介质 |
CN114911474B (zh) * | 2022-07-18 | 2022-10-25 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种基于计算模块的数据处理方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Performance prediction for apache spark platform | |
CN106777101B (zh) | 数据处理引擎 | |
EP3267310A1 (en) | Data processing method and device | |
Stefanello et al. | Matheuristics for the capacitated p‐median problem | |
CN106970929B (zh) | 数据导入方法及装置 | |
Agarwal et al. | Expert system and it's requirement engineering process | |
JP2010524060A (ja) | 分散コンピューティングにおけるデータマージング | |
CN109871311B (zh) | 一种推荐测试用例的方法和装置 | |
CN102135938A (zh) | 一种软件产品测试方法及*** | |
US20160364273A1 (en) | Data Processing Apparatus and Method for Processing Serial Tasks | |
CN202339542U (zh) | 一种软件产品测试*** | |
CN104572895A (zh) | MPP数据库与Hadoop集群数据互通方法、工具及实现方法 | |
CN106528898A (zh) | 将非关系型数据库数据转换到关系型数据库的方法及装置 | |
CN106919697B (zh) | 一种将数据同时导入多个Hadoop组件的方法 | |
CN104391789A (zh) | 一种Web应用程序压力测试的方法 | |
CN114327861A (zh) | 执行eda任务的方法、装置、***和存储介质 | |
CN105607892A (zh) | 一种多程序的并发执行方法和*** | |
CN110889272A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN201435074Y (zh) | 一种基于构件生成测试案例的装置 | |
Premchaiswadi et al. | Optimizing and tuning MapReduce jobs to improve the large‐scale data analysis process | |
CN110555185A (zh) | 基于pc客户端的页面定制方法及*** | |
CN113515462A (zh) | 用于测试的方法、装置、设备以及存储介质 | |
CN116402325A (zh) | 业务流程自动化处理方法及装置 | |
Dewangan et al. | A distributed framework for event log analysis using MapReduce | |
CN115794038A (zh) | 一种基于互联网的软件工程开发***及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160525 |