[发明专利]一种指令执行的方法以及相关设备有效
申请号: | 201810701825.4 | 申请日: | 2018-06-30 |
公开(公告)号: | CN110659140B | 公开(公告)日: | 2022-01-04 |
发明(设计)人: | 杨亮;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 执行 方法 以及 相关 设备 | ||
本发明实施例提供了一种指令执行方法及相关设备,用于解决异步调用过程中所引起的多线程问题。本发明实施例方法包括:通过第一进程使用异步调用函数RpcCallProcedureEx向第二进程发送远程异步调用指令,以使得第二进程根据远程异步调用指令进行处理,并返回异步完成指令;接收异步完成指令;根据远程调用标识符gid从全局字典中查找目标结构体RpcCompositeMessage;根据目标结构体RpcCompositeMessage判断当前远程调用是否线程安全;若是,根据目标结构体RpcCompositeMessage确定目标函数对象task,目标函数对象task中包括异步完成函数RpcCompleteRoutine,异步完成函数RpcCompleteRoutine用于指示所述当前远程调用所调用的数据;在目标线程中注册目标信号处理函数ApcRoutine;基于目标线程的访问标识将目标信号投递至所述目标线程进行处理。
技术领域
本发明涉及远程异步调用领域,尤其涉及一种指令执行的方法以及相关设备。
背景技术
所谓远程过程调用,就是一个进程调用另外一个进程所提供的方法,但是在调用者的角度仍然跟调用本进程的函数是一致的。在远程过程调用中,将要提供给被调用者进程的所有参数序列化为一个网络消息,然后通过网络传输发送到被调用者进程中。被调用者处理完成相应的服务后,将产生的结果也序列化成一个网络消息,发送到调用者进程。
然而,在现有的远程过程调用中,调用进程通过异步调用函数向被调用进行发起远程过程调用时所在的线程,与被调用进程完成处理之后被调用时的线程就不是同一个线程,这样就容易引起多线程问题,例如可能导致程序崩溃。
发明内容
本发明实施例提供了一种指令执行的方法以及相关设备,用于解决异步调用过程中所引起的多线程问题。
本发明实施例的第一方面提供了一种指令执行的方法,包括:
通过第一进程使用异步调用函数RpcCallProcedureEx向第二进程发送远程异步调用指令,以使得所述第二进程根据所述远程异步调用指令进行处理,并返回异步完成指令;
接收所述异步完成指令,所述异步完成指令中携带有远程调用标识符gid;
根据所述远程调用标识符gid从全局字典中查找目标结构体RpcCompositeMessage,所述全局字典至少包括所述远程调用标识符gid对应所述目标结构体RpcCompositeMessage,所述目标结构体RpcCompositeMessage中包括目标线程的访问标识,所述目标线程为所述第一进程发送所述远程异步调用指令所使用的线程;
根据所述目标结构体RpcCompositeMessage判断当前远程调用是否线程安全,所述当前远程调用为所述第一进程向所述第二进程发起的远程调用;
若是,根据所述目标结构体RpcCompositeMessage确定目标函数对象task,所述目标函数对象task中包括异步完成函数RpcCompleteRoutine,所述异步完成函数RpcCompleteRoutine用于指示所述当前远程调用所调用的数据;
在所述目标线程中注册目标信号处理函数ApcRoutine,以通过所述目标线程接收目标信号,并通过所述目标信号处理函数ApcRoutine对所述目标信号进行处理,所述目标信号中携带有所述目标函数对象task;
基于所述目标线程的访问标识将所述目标信号投递至所述目标线程进行处理。
可选地,所述通过所述第一进程向第二进程发送远程异步调用指令之前,所述方法还包括:
通过所述异步调用函数RpcCallProcedureEx获取所述目标属性值,所述目标属性值用于指示所述当前远程调用是否线程安全;
获取所述第一进程的目标线程的访问标识;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810701825.4/2.html,转载请声明来源钻瓜专利网。