[发明专利]异步环境中模拟同步阻塞的方法及装置、存储介质、服务器、终端有效
申请号: | 201710487460.5 | 申请日: | 2017-06-23 |
公开(公告)号: | CN109117277B | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 李爽 | 申请(专利权)人: | 上海木鸡网络科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张振军;吴敏 |
地址: | 200030 上海市崇明县*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异步 环境 模拟 同步 阻塞 方法 装置 存储 介质 服务器 终端 | ||
一种异步环境中模拟同步阻塞的方法及装置、存储介质、服务器、终端,所述方法包括以下步骤:从服务器接收转换后程序,所述转换后程序是将在同步环境下运行的原始程序转换得到的在异步环境下运行的程序,所述转换后程序中安插有阻塞检测代码;在执行所述转换后程序时,执行所述阻塞检测代码以检测是否发生阻塞;当检测到发生阻塞时,向服务器发送阻塞点位置,并保存执行现场;执行所述阻塞对应的操作后,恢复所述执行现场并继续执行所述阻塞点位置之后的程序。本发明方案可以准确地确定是否发生阻塞以及提高程序运行效率。
技术领域
本发明涉及计算机技术领域,尤其是一种异步环境中模拟同步阻塞的方法及装置、存储介质、服务器、终端。
背景技术
当利用编译技术将用于客户端的原生游戏移植至终端网页游戏时,存在一个重要问题是终端执行环境中不存在同步阻塞指令,也即不能实现同步阻塞过程。
其中,所述终端可以包括浏览器、网络视图(WebView)组件以及其他运行JavaScript或者WebAssembly等采用异步调用函数的代码逻辑的终端设备。
具体地,原生游戏采用同步调用函数的代码逻辑,由于数据加载、网络通讯等原因,存在同步阻塞的情况,例如挂起(suspend)操作、睡眠(sleep)操作或者等待(wait)操作时都会进入阻塞状态。其中,阻塞用于指示暂停线程的运行,维持执行现场状态不变,直到完成任务后,恢复执行现场的过程。
而在终端执行环境中,采用异步调用函数的代码逻辑,当遇到阻塞时,无法维持执行现场状态不变,而是采用清理执行现场,完成任务后通过状态、通知和回调来唤醒终端的执行程序的过程,终端将形成新的执行现场,而并非恢复执行现场。因此,在终端执行环境中无法实现与原生游戏相同的代码逻辑。
在现有技术中,通过人为预判原生游戏中的阻塞点位置,进而在相邻阻塞点之间配置片段程序,并且在阻塞点位置之后的后一片段程序中,为执行现场的参数人为赋予阻塞点之前的前一片段程序的参数值,从而实现对原生游戏中同步阻塞过程的模拟。
但是,现有的方法依赖人工对阻塞点位置的预判,往往不够准确,如果判断数目过多将导致人工进行代码重构的成本过高,效率低下;如果判断数目过少将导致阻塞发生时执行现场在阻塞点位置前后不一致,甚至导致程序运行中断。
进一步地,对于判断正确的阻塞点位置,现有技术中需要人工进行代码重构,即在阻塞点位置之后的后一片段程序中,为执行现场的参数人为赋予阻塞点之前的前一片段程序的参数值,导致人工成本过高。
发明内容
本发明解决的技术问题是提供一种异步环境中模拟同步阻塞的方法及装置、存储介质、服务器、终端,可以准确地确定是否发生阻塞以及提高程序运行效率。
为解决上述技术问题,本发明实施例提供一种异步环境中模拟同步阻塞的方法,包括以下步骤:从服务器接收转换后程序,所述转换后程序是将在同步环境下运行的原始程序转换得到的在异步环境下运行的程序,所述转换后程序中安插有阻塞检测代码;在执行所述转换后程序时,执行所述阻塞检测代码以检测是否发生阻塞;当检测到发生阻塞时,向服务器发送阻塞点位置,并保存执行现场;执行所述阻塞对应的操作后,恢复所述执行现场并继续执行所述阻塞点位置之后的程序。
可选的,所述保存执行现场包括:执行现场保存代码以保存所述原始程序的执行现场,所述现场保存代码来自于所述服务器。
可选的,所述现场保存代码安插于所述转换后程序中。
可选的,恢复所述执行现场并继续执行所述阻塞点位置之后的程序包括:从所述服务器接收片段程序,所述片段程序为所述转换后程序在所述阻塞点位置之后的剩余部分;执行现场恢复代码以恢复所述原始程序的执行现场,所述现场恢复代码来自于所述服务器;执行所述片段程序。
可选的,所述现场恢复代码安插于所述片段程序中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海木鸡网络科技有限公司,未经上海木鸡网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710487460.5/2.html,转载请声明来源钻瓜专利网。