[发明专利]跨线程调用链上下文的传递方法、装置及电子设备在审
| 申请号: | 201811233670.2 | 申请日: | 2018-10-23 | 
| 公开(公告)号: | CN109445880A | 公开(公告)日: | 2019-03-08 | 
| 发明(设计)人: | 刘文涛 | 申请(专利权)人: | 数贸科技(北京)有限公司 | 
| 主分类号: | G06F9/448 | 分类号: | G06F9/448 | 
| 代理公司: | 北京市浩天知识产权代理事务所(普通合伙) 11276 | 代理人: | 宋菲;刘云贵 | 
| 地址: | 100083 北京市海*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 线程 预设 调用链 跨线 装置及电子设备 构造函数 类装载器 运行函数 传递 调用 实例替换 业务代码 运行时 加载 | ||
本发明公开了一种跨线程调用链上下文的传递方法、装置及电子设备,方法包括:定义预设线程类,预设线程类实现原生线程接口;利用类装载器构造预设线程类实例,修改对应的构造函数,以便将调用链上下文注入至预设线程类实例;利用类装载器加载预设线程类实例,并修改运行函数,以使调用预设线程类实例的其他线程获取到调用链上下文。本发明通过定义预设线程类,利用预设线程类实现原生线程接口,利用预设线程类实例替换原生线程接口,修改预设线程类实例对应的构造函数,注入调用链上下文,在运行时修改运行函数,以使调用预设线程类实例的其他线程获取到调用链上下文。本发明无需修改用户的业务代码,即可实现跨线程间调用链上下文的传递。
技术领域
本发明涉及软件领域,具体涉及一种跨线程调用链上下文的传递方法、装置及电子设备。
背景技术
在分布式调用链系统中,调用链的上下文需要在Java应用进程间、线程间及线程内进行传递。在Java应用中,实现多线程的方式一般是通过Java并发框架,将线程的Runnable接口或Callable接口实现提交给并发框架执行。以开源的分布式调用链系统Zipkin为例,Zipkin对线程及线程池的的处理方法是对Runnable接口进行包装,在构造新的Runnable接口实现时,将调用链的上下文信息注入,在其他线程执行Runnable时,即可将父线程的调用链上下文取出。从而解决调用链上下文在跨线程时的传递的问题。但这种处理方式对业务代码有侵入,需要对业务代码进行修改,显式的创建新的Runnable接口或Callable接口实现,涉及修改的成本较大,花费较多人力和时间。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的跨线程调用链上下文的传递方法、装置及电子设备。
根据本发明的一个方面,提供了一种跨线程调用链上下文的传递方法,其包括:
定义预设线程类,预设线程类实现原生线程接口,以便替换原生线程接口;
利用类装载器构造预设线程类实例,修改对应的构造函数,以便将调用链上下文注入至预设线程类实例;
利用类装载器加载预设线程类实例,并修改运行函数,以使调用预设线程类实例的其他线程获取到调用链上下文。
根据本发明的另一方面,提供了一种跨线程调用链上下文的传递装置,其包括:
定义模块,适于定义预设线程类,预设线程类实现原生线程接口,以便替换原生线程接口;
构造模块,适于利用类装载器构造预设线程类实例,修改对应的构造函数,以便将调用链上下文注入至预设线程类实例;
运行模块,适于利用类装载器加载预设线程类实例,并修改运行函数,以使调用预设线程类实例的其他线程获取到调用链上下文。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述跨线程调用链上下文的传递方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述跨线程调用链上下文的传递方法对应的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于数贸科技(北京)有限公司,未经数贸科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811233670.2/2.html,转载请声明来源钻瓜专利网。





