CN108958896A - 多线程并发处理系统及方法 - Google Patents
多线程并发处理系统及方法 Download PDFInfo
- Publication number
- CN108958896A CN108958896A CN201810685103.4A CN201810685103A CN108958896A CN 108958896 A CN108958896 A CN 108958896A CN 201810685103 A CN201810685103 A CN 201810685103A CN 108958896 A CN108958896 A CN 108958896A
- Authority
- CN
- China
- Prior art keywords
- thread
- concurrent processing
- multithreading
- division
- sample set
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004458 analytical method Methods 0.000 claims abstract description 22
- 230000017105 transposition Effects 0.000 claims abstract description 4
- 238000007781 pre-processing Methods 0.000 claims abstract description 3
- 239000011159 matrix material Substances 0.000 claims description 22
- 238000003672 processing method Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 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/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了多线程并发处理系统及方法,涉及计算机软件开发领域。本发明包括多线程单元、划分预处理单元、单线程单元和线程分配单元;多线程单元用于接收多个待处理多线程;划分预处理模块用于对接收到的多线程进行处理划分,根据属性划分成多个单线程任务;单线程单元用户接收多个拆分处理完成单线程任务;线程分配单元用于根据属性对接收到的单线程进行并发处理。本发明通过通过将多线程进行划分预处理,利用结构化分析和归一化处理将多线程划分成多个单线程并进行分类排序分配给多个处理线程,提高了线程的执行性能,降低了软件运行的错误率。
Description
技术领域
本发明属于计算机软件开发领域,特别是涉及多线程并发处理系统及方法。
背景技术
随着信息与通讯技术的发展,海量数据时代已经到来。各个行业,尤其是对实时性要求较高的行业要求系统在单位时间内处理的数据量与日俱增,例如金融、电信、网络通信服务(电子邮件、即时通信)、电子商务系统等。
对海量数据的处理,通过硬件提高处理效率的空间已经很小。在软件方面,主要通过多进程、多线程并发处理海量数据。将业务数据拆分为若干任务,分别将每个任务分配给不同的进程/线程进行处理,最终完成整个业务的处理过程。由于单个线程相对于单个进程占用的系统资源较小,处理的效率更高,因此,多线程并发技术更普遍地应用于在互联网领域。
但是大多数多线程系统在处理任务时,不考虑业务数据之间的内在逻辑关系,这在某些情况下会导致业务处理出现问题。例如,电子商务系统中,用户在提交一个订单请求后,又追加了一个订单,最后又取消了前面两个订单,系统对应生成三条订单数据,这三条订单数据的处理必须按照固定的顺序,否则就可能造成处理失败。
发明内容
本发明的目的在于提供多线程并发处理系统及方法,通过将多线程进行划分预处理,利用结构化分析和归一化处理将多线程划分成多个单线程并进行分类排序分配给多个处理线程,解决了现有的计算机软件处理多线程性能低、容易造成逻辑混乱的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为多线程并发处理系统,包括多线程单元、划分预处理单元、单线程单元和线程分配单元;所述多线程单元用于接收多个待处理多线程;所述划分预处理模块用于对接收到的多线程进行处理划分,根据属性划分成多个单线程任务;所述单线程单元用户接收多个拆分处理完成单线程任务;所述线程分配单元用于根据属性对接收到的单线程进行并发处理。
优选地,所述划分预处理单元包括结构化分析模块和归一化处理模块;其中,所述结构化分析模块用于对多线程任务进行推测划分并对推测路径上的代码构建样本集;所述归一化处理模块用于对结构化分析模块构建的样本集进行邻接矩阵的构造,并计算任意样本之间的距离。
本发明为多线程并发处理方法,结构化分析具体处理步骤如下:
步骤D01利用程序剖析技术提取多线程信息;
步骤D02建立基本块层级加权控制流图WCFG;
步骤D03在WCFG基础上,进行结构化分析并建立超级控制流图SCFG。
优选地,所述步骤D01中,提取的多线程信息包括分支概率、循环和过程调用的动态指令数目、循环迭代次数。
优选地,所述步骤D03中,超级控制流图SCFG过程调用和循环区域均被归结为超级块;其中循环区域处理方式包括如下步骤:
步骤一对循环区域控制流图进行剖析,构造循环路径集合;
步骤二计算出此循环路径中循环区域的动态指令数目大小;
其中,循环大小=循环例程的集合+后继+路径个数+节点程度;循环例程=循环体内路径集合。
优选地,所述归一化处理模块具体处理步骤如下:
步骤G01利用结果化分析结果构造基本块或超级块对象的样本集;其中,样本集S={xj,j=1,2,3,…,N};
步骤G02根据CFG中的控制流关系,构造所有样本的邻接矩阵Madjacent;其中,矩阵中的每个元素表示对应的两个样本之间的控制流关系;
步骤G03根据Madjacent计算出任意样本之间的距离Dij;
步骤G04Dij通过归一化处理得到样本集的距离矩阵Ddix tan ce,距离矩阵Ddix tan ce的表示公式为:
其中,Dij表示任意样本之间的距离;当Mij的值为1时,Dij为两个样本所代表的基本块包含的动态指令数之和的1/2;当Mij的值为0时,Dij为两个样本之间所包含的路径距离。
优选地,所述步骤G01中,样本集S需要划分到c个类别集{1,2,3…,c}中,使得被划分到同一类的对象之间的相识度最大;则划分算法的公式为:
其中,U为模糊隶属度矩阵,V为聚类中心矩阵,X为样本集合,c为聚类数,uij为xj属于的i类的隶属度。
优选地,线程划分完成需要将待处理数据分配给多个处理线程;在分配之前需要对对待处理的数据进行排序。
本发明具有以下有益效果:
本发明通过将多线程进行划分预处理,利用结构化分析和归一化处理将多线程划分成多个单线程并进行分类排序分配给多个处理线程,提高了线程的执行性能,降低了软件运行的错误率。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的多线程并发处理系统结构示意图;
图2为结构化分析处理步骤图;
图3为循环区域处理步骤图;
图4为归一化处理步骤图;
图5为实施例中基于SCFG的线程规划示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1-4所示,本发明为多线程并发处理系统,包括多线程单元、划分预处理单元、单线程单元和线程分配单元;多线程单元用于接收多个待处理多线程;划分预处理模块用于对接收到的多线程进行处理划分,根据属性划分成多个单线程任务;单线程单元用户接收多个拆分处理完成单线程任务;线程分配单元用于根据属性对接收到的单线程进行并发处理。
其中,划分预处理单元包括结构化分析模块和归一化处理模块;其中,结构化分析模块用于对多线程任务进行推测划分并对推测路径上的代码构建样本集;归一化处理模块用于对结构化分析模块构建的样本集进行邻接矩阵的构造,并计算任意样本之间的距离。
本发明为多线程并发处理方法,结构化分析具体处理步骤如下:
步骤D01利用程序剖析技术提取多线程信息;
步骤D02建立基本块层级加权控制流图WCFG;
步骤D03在WCFG基础上,进行结构化分析并建立超级控制流图SCFG。对于过程调用,其指令大小可以采用如下表达式计算:
过程调用=调用例程+后继,调用例程=例程路径。
其中,步骤D01中,提取的多线程信息包括分支概率、循环和过程调用的动态指令数目、循环迭代次数。
其中,步骤D03中,超级控制流图SCFG过程调用和循环区域均被归结为超级块;其中循环区域处理方式包括如下步骤:
步骤一对循环区域控制流图进行剖析,构造循环路径集合;
步骤二计算出此循环路径中循环区域的动态指令数目大小;
其中,循环大小=循环例程的集合+后继+路径个数+节点程度;循环例程=循环体内路径集合;通过对循环区域控制流图进行剖析,构造一个循环路径集合,每个循环路径由循环体中从循环入口节点到循环出口点的一个串行节点组成,在一个循环出口节点可能有3中类型;(1)指向循环头节点;(2)指向循环区域外部节点;(3)节点调用了包含结束指令的过程调用。
其中,归一化处理模块具体处理步骤如下:
步骤G01利用结果化分析结果构造基本块或超级块对象的样本集;其中,样本集S={xj,j=1,2,3,…,N};
步骤G02根据CFG中的控制流关系,构造所有样本的邻接矩阵Madjacent;此矩阵中的每个元素表示对应的两个样本之间的控制流关系;若Mij等于1,则i到j为有控制流;若Mij等于0,则i到j为无控制流;
其中,矩阵中的每个元素表示对应的两个样本之间的控制流关系;
步骤G03根据Madjacent计算出任意样本之间的距离Dij;
步骤G04Dij通过归一化处理得到样本集的距离矩阵Ddix tan ce,距离矩阵Ddix tan ce的表示公式为:
其中,Dij表示任意样本之间的距离;当Mij的值为1时,Dij为两个样本所代表的基本块包含的动态指令数之和的1/2;当Mij的值为0时,Dij为两个样本之间所包含的路径距离。
其中,步骤G01中,样本集S需要划分到c个类别集{1,2,3…,c}中,使得被划分到同一类的对象之间的相识度最大;则划分算法的公式为:
其中,U为模糊隶属度矩阵,V为聚类中心矩阵,X为样本集合,c为聚类数,uij为xj属于的i类的隶属度。
其中,线程划分完成需要将待处理数据分配给多个处理线程;在分配之前需要对对待处理的数据进行排序。
本实施例的一个具体应用为:
请参阅图5,途中实体粗线表示推测路径,实体细线表示线程划分边界,图中有3个线程,分别为线程1、线程2、线程3;线程1包括了2个超级块:超级块1和超级块2;线程2包括了2个超级块:超级块C和超级块E,线程3包括了2个超级块:超级块G和I;当成功执行时这些线程可以对并行做出贡献,其执行时间将等价成并行时间。根据Amdahl定律,一个程序的加速比是有程序串行部分的运行时间和并行部分的运行时间决定的。假设T_Time是串行程序执行时间,T_Seq是程序中串行部分的执行时间,T_Par是程序中串行部分的执行时间,按摩加速比可以用如下计算公式:
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (8)
1.多线程并发处理系统,包括多线程单元、划分预处理单元、单线程单元和线程分配单元,其特征在于:
所述多线程单元用于接收多个待处理多线程;
所述划分预处理模块用于对接收到的多线程进行处理划分,根据属性划分成多个单线程任务;
所述单线程单元用户接收多个拆分处理完成单线程任务;
所述线程分配单元用于根据属性对接收到的单线程进行并发处理。
2.根据权利要求1所述的多线程并发处理系统,其特征在于,所述划分预处理单元包括结构化分析模块和归一化处理模块;
其中,所述结构化分析模块用于对多线程任务进行推测划分并对推测路径上的代码构建样本集;所述归一化处理模块用于对结构化分析模块构建的样本集进行邻接矩阵的构造,并计算任意样本之间的距离。
3.如权利要求1-2任一所述的多线程并发处理系统的处理方法,其特征在于,所述结构化分析模块具体处理步骤如下:
步骤D01利用程序剖析技术提取多线程信息;
步骤D02建立基本块层级加权控制流图WCFG;
步骤D03在WCFG基础上,进行结构化分析并建立超级控制流图SCFG。
4.根据权利要求3所述的多线程并发处理方法,其特征在于,所述步骤D01中,提取的多线程信息包括分支概率、循环和过程调用的动态指令数目、循环迭代次数。
5.根据权利要求3所述的多线程并发处理方法,其特征在于,所述步骤D03中,超级控制流图SCFG过程调用和循环区域均被归结为超级块;其中循环区域处理方式包括如下步骤:
步骤一对循环区域控制流图进行剖析,构造循环路径集合;
步骤二计算出此循环路径中循环区域的动态指令数目大小;
其中,循环大小=循环例程的集合+后继+路径个数+节点程度;循环例程=循环体内路径集合。
6.如权利要求1-2任一所述的多线程并发处理系统的处理方法,其特征在于,所述归一化处理模块具体处理步骤如下:
步骤G01利用结果化分析结果构造基本块或超级块对象的样本集;其中,样本集S={xj,j=1,2,3,...,N};
步骤G02根据CFG中的控制流关系,构造所有样本的邻接矩阵Madjacent;其中,矩阵中的每个元素表示对应的两个样本之间的控制流关系;
步骤G03根据Madjacent计算出任意样本之间的距离Dij;
步骤G04 Dij通过归一化处理得到样本集的距离矩阵Ddixtance,距离矩阵Ddixtance的表示公式为:
其中,Dij表示任意样本之间的距离;当Mij的值为1时,Dij为两个样本所代表的基本块包含的动态指令数之和的1/2;当Mij的值为0时,Dij为两个样本之间所包含的路径距离。
7.根据权利要求6所述的多线程并发处理方法,其特征在于,所述步骤G01中,样本集S需要划分到c个类别集{1,2,3...,c}中,使得被划分到同一类的对象之间的相识度最大;则划分算法的公式为:
其中,U为模糊隶属度矩阵,V为聚类中心矩阵,X为样本集合,c为聚类数,uij为xj属于的i类的隶属度。
8.根据权利要求3-7任意所述的多线程并发处理方法,其特征在于,线程划分完成需要将待处理数据分配给多个处理线程;在分配之前需要对对待处理的数据进行排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810685103.4A CN108958896A (zh) | 2018-06-16 | 2018-06-16 | 多线程并发处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810685103.4A CN108958896A (zh) | 2018-06-16 | 2018-06-16 | 多线程并发处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108958896A true CN108958896A (zh) | 2018-12-07 |
Family
ID=64487311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810685103.4A Pending CN108958896A (zh) | 2018-06-16 | 2018-06-16 | 多线程并发处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108958896A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947564A (zh) * | 2019-03-07 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 业务处理方法、装置、设备及存储介质 |
CN110147269A (zh) * | 2019-05-09 | 2019-08-20 | 腾讯科技(上海)有限公司 | 一种事件处理方法、装置、设备及存储介质 |
CN111338705A (zh) * | 2020-02-13 | 2020-06-26 | 贝壳技术有限公司 | 一种数据处理的方法、装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002088940A1 (en) * | 2001-04-26 | 2002-11-07 | Eleven Engineering Incorporated | Multithread embedded processor with input/output capability |
CN102722417A (zh) * | 2012-06-07 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 一种扫描任务的分配方法和装置 |
CN103605498A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 单线程任务的多线程执行方法及系统 |
CN105373424A (zh) * | 2015-10-14 | 2016-03-02 | 西安交通大学 | 一种基于机器学习的推测多线程划分方法 |
CN106325980A (zh) * | 2015-06-30 | 2017-01-11 | 中国石油化工股份有限公司 | 一种多线程并发系统 |
-
2018
- 2018-06-16 CN CN201810685103.4A patent/CN108958896A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002088940A1 (en) * | 2001-04-26 | 2002-11-07 | Eleven Engineering Incorporated | Multithread embedded processor with input/output capability |
CN102722417A (zh) * | 2012-06-07 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 一种扫描任务的分配方法和装置 |
CN103605498A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 单线程任务的多线程执行方法及系统 |
CN106325980A (zh) * | 2015-06-30 | 2017-01-11 | 中国石油化工股份有限公司 | 一种多线程并发系统 |
CN105373424A (zh) * | 2015-10-14 | 2016-03-02 | 西安交通大学 | 一种基于机器学习的推测多线程划分方法 |
Non-Patent Citations (2)
Title |
---|
李远成 等: "一种基于路径优化的推测多线程划分算法", 《软件学报》 * |
李远成 等: "基于模糊聚类的推测多线程划分算法", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947564A (zh) * | 2019-03-07 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 业务处理方法、装置、设备及存储介质 |
CN109947564B (zh) * | 2019-03-07 | 2023-04-11 | 蚂蚁金服(杭州)网络技术有限公司 | 业务处理方法、装置、设备及存储介质 |
CN110147269A (zh) * | 2019-05-09 | 2019-08-20 | 腾讯科技(上海)有限公司 | 一种事件处理方法、装置、设备及存储介质 |
CN110147269B (zh) * | 2019-05-09 | 2023-06-13 | 腾讯科技(上海)有限公司 | 一种事件处理方法、装置、设备及存储介质 |
CN111338705A (zh) * | 2020-02-13 | 2020-06-26 | 贝壳技术有限公司 | 一种数据处理的方法、装置和存储介质 |
CN111338705B (zh) * | 2020-02-13 | 2021-03-26 | 北京房江湖科技有限公司 | 一种数据处理的方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bender et al. | Cache-adaptive algorithms | |
Liu et al. | Allocating tasks in multi-core processor based parallel system | |
CN108958896A (zh) | 多线程并发处理系统及方法 | |
Dong et al. | Workflow scheduling based on deep reinforcement learning in the cloud environment | |
Wu et al. | Adaptive DAG tasks scheduling with deep reinforcement learning | |
Tang et al. | Dynamic slot allocation technique for MapReduce clusters | |
Dublish et al. | Poise: Balancing thread-level parallelism and memory system performance in GPUs using machine learning | |
Cid-Fuentes et al. | Efficient development of high performance data analytics in Python | |
Afanasyev et al. | VGL: a high-performance graph processing framework for the NEC SX-Aurora TSUBASA vector architecture | |
Mahafzah | Parallel multithreaded IDA* heuristic search: algorithm design and performance evaluation | |
Shi et al. | Towards optimizing task scheduling process in cloud environment | |
CN113608858A (zh) | 一种基于MapReduce架构的数据同步用块任务执行系统 | |
Li et al. | A static task scheduling framework for independent tasks accelerated using a shared graphics processing unit | |
Nemirovsky et al. | A deep learning mapper (DLM) for scheduling on heterogeneous systems | |
Khalil et al. | Survey of Apache Spark optimized job scheduling in Big Data | |
Jain et al. | Analysis of multi level feedback queue scheduling using markov chain model with data model approach | |
Li et al. | Performance modelling and cost effective execution for distributed graph processing on configurable VMs | |
Suresh et al. | Performance analysis of various combination sorting algotirthms for large dataset to fit to a multi-core architecture | |
CN110427217B (zh) | 基于内容的发布订阅系统匹配算法轻量级并行方法和系统 | |
Zhu et al. | A parallel attribute reduction algorithm based on Affinity Propagation clustering. | |
Jiang et al. | An optimized resource scheduling strategy for Hadoop speculative execution based on non-cooperative game schemes | |
Nguyen et al. | Throughput-driven partitioning of stream programs on heterogeneous distributed systems | |
Nascimento et al. | A hybrid parallel algorithm for the auction algorithm in multicore systems | |
Romero et al. | SkyFlow: Heterogeneous streaming for skyline computation using flowgraph and SYCL | |
Al-muqarm et al. | Dynamic cost-optimized resources management and task scheduling with deadline constraint for mobile crowd sensing environment |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181207 |