[发明专利]一种基于异步调用实现同步调用的处理方法及装置有效
申请号: | 201710525773.5 | 申请日: | 2017-06-30 |
公开(公告)号: | CN107479981B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 李从章;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 11570 北京众达德权知识产权代理有限公司 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 异步 调用 实现 同步 处理 方法 装置 | ||
本发明公开了一种基于异步调用实现同步调用的处理方法及装置,其中的方法包括:获取预设的用于异步调用的第一函数,所述第一函数的参数包括第一回调函数;根据所述第一函数的参数生成用于同步调用的第二函数,其中,所述第二函数的参数包括第二回调函数和时间;构建所述第二回调函数与所述第一回调函数的对应关系,并根据所述对应关系,在所述第二函数中调用所述第一函数,通过所述第一函数异步调用所述第一回调函数;如果获得所述第一回调函数的执行结果的等待时间小于所述时间参数的值,则通过所述第二函数同步调用所述第二回调函数。本发明解决了现有技术中异步调用方法容易导致多线程带来的安全和同步的技术问题。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于异步调用实现同步调用的处理方法及装置。
背景技术
计算机在处理任务或事务的过程中,可以采用同步调用或者异步调用的方式,而异步调用可以利用多线程技术而被广泛使用,并且大多用于比较占用时间且容易阻塞的事务,通过异步调用方式可以把该事务交给新的线程完成,而不阻塞当前的线程,当事务完成后,通过callback(回调)等方式通知。
然而,异步调用涉及不同的线程之间共享代码和共享数据,并且需要设置各种状态标志来避免冲突,因此实现较为复杂,并且利用异步调用处理事务时容易出现问题。
可见,现有技术中,异步调用方法容易导致多线程带来的安全和同步的技术问题。
发明内容
本发明提供一种基于异步调用实现同步调用的处理方法及装置,用以解决现有技术中,异步调用方法容易导致多线程带来的安全和同步的技术问题。
本发明第一方面提供了一种基于异步调用实现同步调用的处理方法,包括:
获取预设的用于异步调用的第一函数,所述第一函数的参数包括第一回调函数;
根据所述第一函数的参数生成用于同步调用的第二函数,其中,所述第二函数的参数包括第二回调函数和时间;
构建所述第二回调函数与所述第一回调函数的对应关系,并根据所述对应关系,在所述第二函数中调用所述第一函数,通过所述第一函数异步调用所述第一回调函数;
如果获得所述第一回调函数的执行结果的等待时间小于所述时间参数的值,则通过所述第二函数同步调用所述第二回调函数。
可选地,所述方法还包括:
如果获得所述第一回调函数的执行结果的等待时间等于所述时间参数的值,则返回超时信息。
可选地,所述根据所述第一函数的参数生成用于同步调用的第二函数,包括:
获取所述第一函数的参数,所述第一函数的参数包括核心参数;
根据所述第一函数的参数设置第二函数的参数,使所述第二函数的参数包含所述核心参数。
可选地,所述第二回调函数和所述第一回调函数之间的对应关系通过下述方式建立:
将所述第二回调函数的参数值赋值给所述第一回调函数。
基于同样的发明构思,本发明第二方面提供了一种基于异步调用实现同步调用的处理装置,包括:
获取模块,用于获取预设的用于异步调用的第一函数,所述第一函数的参数包括第一回调函数;
生成模块,用于根据所述第一函数的参数生成用于同步调用的第二函数,其中所述第二函数的参数包括第二回调函数和时间;
异步调用模块,用于构建所述第二回调函数与所述第一回调函数的对应关系,并根据所述对应关系,在所述第二函数中调用所述第一函数,通过所述第一函数异步调用所述第一回调函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710525773.5/2.html,转载请声明来源钻瓜专利网。