多线程并发处理系统及方法与流程

文档序号:16207447发布日期:2018-12-08 07:17阅读:774来源:国知局
多线程并发处理系统及方法与流程

本发明属于计算机软件开发领域,特别是涉及多线程并发处理系统及方法。

背景技术

随着信息与通讯技术的发展,海量数据时代已经到来。各个行业,尤其是对实时性要求较高的行业要求系统在单位时间内处理的数据量与日俱增,例如金融、电信、网络通信服务(电子邮件、即时通信)、电子商务系统等。

对海量数据的处理,通过硬件提高处理效率的空间已经很小。在软件方面,主要通过多进程、多线程并发处理海量数据。将业务数据拆分为若干任务,分别将每个任务分配给不同的进程/线程进行处理,最终完成整个业务的处理过程。由于单个线程相对于单个进程占用的系统资源较小,处理的效率更高,因此,多线程并发技术更普遍地应用于在互联网领域。

但是大多数多线程系统在处理任务时,不考虑业务数据之间的内在逻辑关系,这在某些情况下会导致业务处理出现问题。例如,电子商务系统中,用户在提交一个订单请求后,又追加了一个订单,最后又取消了前面两个订单,系统对应生成三条订单数据,这三条订单数据的处理必须按照固定的顺序,否则就可能造成处理失败。



技术实现要素:

本发明的目的在于提供多线程并发处理系统及方法,通过将多线程进行划分预处理,利用结构化分析和归一化处理将多线程划分成多个单线程并进行分类排序分配给多个处理线程,解决了现有的计算机软件处理多线程性能低、容易造成逻辑混乱的问题。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明为多线程并发处理系统,包括多线程单元、划分预处理单元、单线程单元和线程分配单元;所述多线程单元用于接收多个待处理多线程;所述划分预处理模块用于对接收到的多线程进行处理划分,根据属性划分成多个单线程任务;所述单线程单元用户接收多个拆分处理完成单线程任务;所述线程分配单元用于根据属性对接收到的单线程进行并发处理。

优选地,所述划分预处理单元包括结构化分析模块和归一化处理模块;其中,所述结构化分析模块用于对多线程任务进行推测划分并对推测路径上的代码构建样本集;所述归一化处理模块用于对结构化分析模块构建的样本集进行邻接矩阵的构造,并计算任意样本之间的距离。

本发明为多线程并发处理方法,结构化分析具体处理步骤如下:

步骤d01利用程序剖析技术提取多线程信息;

步骤d02建立基本块层级加权控制流图wcfg;

步骤d03在wcfg基础上,进行结构化分析并建立超级控制流图scfg。

优选地,所述步骤d01中,提取的多线程信息包括分支概率、循环和过程调用的动态指令数目、循环迭代次数。

优选地,所述步骤d03中,超级控制流图scfg过程调用和循环区域均被归结为超级块;其中循环区域处理方式包括如下步骤:

步骤一对循环区域控制流图进行剖析,构造循环路径集合;

步骤二计算出此循环路径中循环区域的动态指令数目大小;

其中,循环大小=循环例程的集合+后继+路径个数+节点程度;循环例程=循环体内路径集合。

优选地,所述归一化处理模块具体处理步骤如下:

步骤g01利用结果化分析结果构造基本块或超级块对象的样本集;其中,样本集s={xj,j=1,2,3,…,n};

步骤g02根据cfg中的控制流关系,构造所有样本的邻接矩阵madjacent;其中,矩阵中的每个元素表示对应的两个样本之间的控制流关系;

步骤g03根据madjacent计算出任意样本之间的距离dij;

步骤g04dij通过归一化处理得到样本集的距离矩阵ddixtance,距离矩阵ddixtance的表示公式为:

其中,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通过归一化处理得到样本集的距离矩阵ddixtance,距离矩阵ddixtance的表示公式为:

其中,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是程序中串行部分的执行时间,按摩加速比可以用如下计算公式:

值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1