并行多线程参数透传的方法和系统技术方案

技术编号:28717219 阅读:18 留言:0更新日期:2021-06-06 02:26
本发明专利技术提供了一种并行多线程参数透传的方法和系统。并行多线程的参数透传的方法包括以下步骤:通过任一线程创建任一线程的线程对象;通过中间件获取任一线程的上下文中需要透传的参数信息,并根据线程对象和参数信息构建代理线程对象;以及运行代理线程对象以生成新线程,同时将参数信息配置在新线程的上下文中。本发明专利技术的一种并行多线程参数透传的方法和系统,可以在创建新线程的同时直接透传参数,从而提高参数透传的准确性和通用性。从而提高参数透传的准确性和通用性。从而提高参数透传的准确性和通用性。

【技术实现步骤摘要】
并行多线程参数透传的方法和系统


[0001]本专利技术主要涉及多线程数据处理领域,尤其涉及一种并行多线程参数透传的方法和系统。

技术介绍

[0002]在软件开发的过程中,经常遇到大量的需要传递相同参数的场景,程序员需要重复传递大量的租户/项目级别的参数用于各个不同调用层级的方法内的业务使用,如果漏传或者错传则可能导致数据错误或者业务异常等情况。
[0003]特别的,并行多线程以能够在同一时间执行多个线程从而提升系统整体的处理能力而被广泛的应用。在并行多线程的场景下,也时常会遇到需要传递参数的场景。具体的,在同一个开发项目中或者在同一应用中,在创建多线程的过程中,常有些具有公共属性的参数需要随现有的线程进行传递。
[0004]在现有技术中,各个开发者会自行的采用层层传递的方式传递自己需要的参数,或者是自己封装上下文对象包装这些具有公共属性的参数。然而这样的方式虽然无需特殊的设计且构思比较简单,但是也存在着诸多弊端。例如,现有的传递过程较为繁琐,而且采用开发者自行传递的方式可能会出错。而若是开发人员封装上下文,则在多线程的场景下也需要将该封装后的具有公共参数的上下文用同样认为的方式层层传递,且不同开发人员封装的上下文也可能存在无法兼容共用的问题,长期来说对于项目的开发也有不利影响。因此,采用现有的数据传递的方式,准确性和参数传递的通用性较差。

技术实现思路

[0005]本专利技术要解决的技术问题是提供一种并行多线程参数透传的方法和系统,可以在创建新线程的同时直接透传参数。
[0006]为解决上述技术问题,本专利技术提供了一种并行多线程参数透传的方法,包括以下步骤:通过任一线程创建所述任一线程的线程对象;通过中间件获取所述任一线程的上下文中需要透传的参数信息,并根据所述线程对象和所述参数信息构建代理线程对象;以及运行所述代理线程对象以生成新线程,同时将所述参数信息配置在所述新线程的上下文中。
[0007]在本专利技术的一实施例中,通过所述任一线程创建所述任一线程的线程对象的步骤包括:所述任一线程在调用函数中创建所述任一线程的线程对象,其中,所述调用函数调用所述中间件以获取所述参数信息并构建所述代理线程对象。
[0008]在本专利技术的一实施例中,所述中间件获取所述任一线程的上下文中需要透传的参数信息的步骤包括:在所述中间件中覆写并替换提交方法以生成提交方法副本;通过所述调用函数调用所述提交方法,从而直接调用所述中间件中的所述提交方法副本;以及所述提交方法副本获取所述任一线程的上下文中需要透传的所述参数信息。
[0009]在本专利技术的一实施例中,还包括在所述构建代理线程对象之后,将所述代理线程
对象提交至线程池队列,并等待所述线程池队列运行所述代理线程对象。
[0010]在本专利技术的一实施例中,在所述任一线程创建所述任一线程的线程对象之前,还包括在所述任一线程的上下文中初始化第一线程本地存储实例,并在所述第一线程本地存储实例中存储第一组参数信息。
[0011]在本专利技术的一实施例中,还包括运行所述新线程以在所述新线程中调用所述参数信息,并在调用完成后清空所述新线程的上下文中的所述第一组参数信息。
[0012]在本专利技术的一实施例中,还包括在所述新线程的上下文中初始化第二线程本地存储实例,并在所述第二线程本地存储实例中存储第二组参数信息,其中所述第二组参数信息与所述第一组参数信息不完全相同。
[0013]在本专利技术的一实施例中,所述参数信息包括文字、数字和函数。
[0014]在本专利技术的一实施例中,所述参数信息包括租户和/或用户的信息,以及语言、时区、系统域名和设备型号的信息。
[0015]为了解决以上的技术问题,本专利技术还提供了一种并行多线程参数透传的系统,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现上述并行多线程参数透传的方法。
[0016]为了解决以上的技术问题,本专利技术还提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现并行多线程参数透传的方法。
[0017]与现有技术相比,本专利技术具有以下优点:
[0018]本专利技术的一种并行多线程参数透传的方法和系统,在创建新线程的过程中,通过中间件的处理和调用,将原始线程所需要传递的具有公共属性的参数进行自动透传,无需开发人员再通过自行层层传递或封装上下文的方式传递参数;
[0019]本专利技术的一种并行多线程参数透传的方法和系统,可以自动在创建新线程的同时直接透传参数,有效的提高了参数透传的准确性和通用性。
附图说明
[0020]包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本专利技术原理的作用。附图中:
[0021]图1是本专利技术一实施例的一种并行多线程参数透传的方法的流程示意图;
[0022]图2是本专利技术一实施例的一种并行多线程参数透传的方法的逻辑关系示意图;以及
[0023]图3是本专利技术一实施例的一种并行多线程参数透传的系统的系统框架图。
具体实施方式
[0024]为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
[0025]如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一
种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0026]除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0027]此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种并行多线程参数透传的方法,其特征在于,包括以下步骤:通过任一线程创建所述任一线程的线程对象;通过中间件获取所述任一线程的上下文中需要透传的参数信息,并根据所述线程对象和所述参数信息构建代理线程对象;以及运行所述代理线程对象以生成新线程,同时将所述参数信息配置在所述新线程的上下文中。2.如权利要求1所述的方法,其特征在于,通过所述任一线程创建所述任一线程的线程对象的步骤包括:所述任一线程在调用函数中创建所述任一线程的线程对象,其中,所述调用函数调用所述中间件以获取所述参数信息并构建所述代理线程对象。3.如权利要求2所述的方法,其特征在于,所述中间件获取所述任一线程的上下文中需要透传的参数信息的步骤包括:在所述中间件中覆写并替换提交方法以生成提交方法副本;通过所述调用函数调用所述提交方法,从而直接调用所述中间件中的所述提交方法副本;以及所述提交方法副本获取所述任一线程的上下文中需要透传的所述参数信息。4.如权利要求2或3所述的方法,其特征在于,还包括在所述构建代理线程对象之后,将所述代理线程对象提交至线程池队列,并等待所述线程池队列运行所述代理线程对象。5.如权利要求1所述的方法,其特征在于,在所述任一线程...

【专利技术属性】
技术研发人员:杨涛王红奇
申请(专利权)人:浙江太美医疗科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1