[發(fā)明專利]異步環(huán)境中模擬同步阻塞的方法及裝置、存儲(chǔ)介質(zhì)、服務(wù)器、終端有效
| 申請(qǐng)?zhí)枺?/td> | 201710487460.5 | 申請(qǐng)日: | 2017-06-23 |
| 公開(kāi)(公告)號(hào): | CN109117277B | 公開(kāi)(公告)日: | 2020-11-27 |
| 發(fā)明(設(shè)計(jì))人: | 李爽 | 申請(qǐng)(專利權(quán))人: | 上海木雞網(wǎng)絡(luò)科技有限公司 |
| 主分類號(hào): | G06F9/52 | 分類號(hào): | G06F9/52 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 張振軍;吳敏 |
| 地址: | 200030 上海市崇明縣*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 異步 環(huán)境 模擬 同步 阻塞 方法 裝置 存儲(chǔ) 介質(zhì) 服務(wù)器 終端 | ||
一種異步環(huán)境中模擬同步阻塞的方法及裝置、存儲(chǔ)介質(zhì)、服務(wù)器、終端,所述方法包括以下步驟:從服務(wù)器接收轉(zhuǎn)換后程序,所述轉(zhuǎn)換后程序是將在同步環(huán)境下運(yùn)行的原始程序轉(zhuǎn)換得到的在異步環(huán)境下運(yùn)行的程序,所述轉(zhuǎn)換后程序中安插有阻塞檢測(cè)代碼;在執(zhí)行所述轉(zhuǎn)換后程序時(shí),執(zhí)行所述阻塞檢測(cè)代碼以檢測(cè)是否發(fā)生阻塞;當(dāng)檢測(cè)到發(fā)生阻塞時(shí),向服務(wù)器發(fā)送阻塞點(diǎn)位置,并保存執(zhí)行現(xiàn)場(chǎng);執(zhí)行所述阻塞對(duì)應(yīng)的操作后,恢復(fù)所述執(zhí)行現(xiàn)場(chǎng)并繼續(xù)執(zhí)行所述阻塞點(diǎn)位置之后的程序。本發(fā)明方案可以準(zhǔn)確地確定是否發(fā)生阻塞以及提高程序運(yùn)行效率。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其是一種異步環(huán)境中模擬同步阻塞的方法及裝置、存儲(chǔ)介質(zhì)、服務(wù)器、終端。
背景技術(shù)
當(dāng)利用編譯技術(shù)將用于客戶端的原生游戲移植至終端網(wǎng)頁(yè)游戲時(shí),存在一個(gè)重要問(wèn)題是終端執(zhí)行環(huán)境中不存在同步阻塞指令,也即不能實(shí)現(xiàn)同步阻塞過(guò)程。
其中,所述終端可以包括瀏覽器、網(wǎng)絡(luò)視圖(WebView)組件以及其他運(yùn)行JavaScript或者WebAssembly等采用異步調(diào)用函數(shù)的代碼邏輯的終端設(shè)備。
具體地,原生游戲采用同步調(diào)用函數(shù)的代碼邏輯,由于數(shù)據(jù)加載、網(wǎng)絡(luò)通訊等原因,存在同步阻塞的情況,例如掛起(suspend)操作、睡眠(sleep)操作或者等待(wait)操作時(shí)都會(huì)進(jìn)入阻塞狀態(tài)。其中,阻塞用于指示暫停線程的運(yùn)行,維持執(zhí)行現(xiàn)場(chǎng)狀態(tài)不變,直到完成任務(wù)后,恢復(fù)執(zhí)行現(xiàn)場(chǎng)的過(guò)程。
而在終端執(zhí)行環(huán)境中,采用異步調(diào)用函數(shù)的代碼邏輯,當(dāng)遇到阻塞時(shí),無(wú)法維持執(zhí)行現(xiàn)場(chǎng)狀態(tài)不變,而是采用清理執(zhí)行現(xiàn)場(chǎng),完成任務(wù)后通過(guò)狀態(tài)、通知和回調(diào)來(lái)喚醒終端的執(zhí)行程序的過(guò)程,終端將形成新的執(zhí)行現(xiàn)場(chǎng),而并非恢復(fù)執(zhí)行現(xiàn)場(chǎng)。因此,在終端執(zhí)行環(huán)境中無(wú)法實(shí)現(xiàn)與原生游戲相同的代碼邏輯。
在現(xiàn)有技術(shù)中,通過(guò)人為預(yù)判原生游戲中的阻塞點(diǎn)位置,進(jìn)而在相鄰阻塞點(diǎn)之間配置片段程序,并且在阻塞點(diǎn)位置之后的后一片段程序中,為執(zhí)行現(xiàn)場(chǎng)的參數(shù)人為賦予阻塞點(diǎn)之前的前一片段程序的參數(shù)值,從而實(shí)現(xiàn)對(duì)原生游戲中同步阻塞過(guò)程的模擬。
但是,現(xiàn)有的方法依賴人工對(duì)阻塞點(diǎn)位置的預(yù)判,往往不夠準(zhǔn)確,如果判斷數(shù)目過(guò)多將導(dǎo)致人工進(jìn)行代碼重構(gòu)的成本過(guò)高,效率低下;如果判斷數(shù)目過(guò)少將導(dǎo)致阻塞發(fā)生時(shí)執(zhí)行現(xiàn)場(chǎng)在阻塞點(diǎn)位置前后不一致,甚至導(dǎo)致程序運(yùn)行中斷。
進(jìn)一步地,對(duì)于判斷正確的阻塞點(diǎn)位置,現(xiàn)有技術(shù)中需要人工進(jìn)行代碼重構(gòu),即在阻塞點(diǎn)位置之后的后一片段程序中,為執(zhí)行現(xiàn)場(chǎng)的參數(shù)人為賦予阻塞點(diǎn)之前的前一片段程序的參數(shù)值,導(dǎo)致人工成本過(guò)高。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問(wèn)題是提供一種異步環(huán)境中模擬同步阻塞的方法及裝置、存儲(chǔ)介質(zhì)、服務(wù)器、終端,可以準(zhǔn)確地確定是否發(fā)生阻塞以及提高程序運(yùn)行效率。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種異步環(huán)境中模擬同步阻塞的方法,包括以下步驟:從服務(wù)器接收轉(zhuǎn)換后程序,所述轉(zhuǎn)換后程序是將在同步環(huán)境下運(yùn)行的原始程序轉(zhuǎn)換得到的在異步環(huán)境下運(yùn)行的程序,所述轉(zhuǎn)換后程序中安插有阻塞檢測(cè)代碼;在執(zhí)行所述轉(zhuǎn)換后程序時(shí),執(zhí)行所述阻塞檢測(cè)代碼以檢測(cè)是否發(fā)生阻塞;當(dāng)檢測(cè)到發(fā)生阻塞時(shí),向服務(wù)器發(fā)送阻塞點(diǎn)位置,并保存執(zhí)行現(xiàn)場(chǎng);執(zhí)行所述阻塞對(duì)應(yīng)的操作后,恢復(fù)所述執(zhí)行現(xiàn)場(chǎng)并繼續(xù)執(zhí)行所述阻塞點(diǎn)位置之后的程序。
可選的,所述保存執(zhí)行現(xiàn)場(chǎng)包括:執(zhí)行現(xiàn)場(chǎng)保存代碼以保存所述原始程序的執(zhí)行現(xiàn)場(chǎng),所述現(xiàn)場(chǎng)保存代碼來(lái)自于所述服務(wù)器。
可選的,所述現(xiàn)場(chǎng)保存代碼安插于所述轉(zhuǎn)換后程序中。
可選的,恢復(fù)所述執(zhí)行現(xiàn)場(chǎng)并繼續(xù)執(zhí)行所述阻塞點(diǎn)位置之后的程序包括:從所述服務(wù)器接收片段程序,所述片段程序?yàn)樗鲛D(zhuǎn)換后程序在所述阻塞點(diǎn)位置之后的剩余部分;執(zhí)行現(xiàn)場(chǎng)恢復(fù)代碼以恢復(fù)所述原始程序的執(zhí)行現(xiàn)場(chǎng),所述現(xiàn)場(chǎng)恢復(fù)代碼來(lái)自于所述服務(wù)器;執(zhí)行所述片段程序。
可選的,所述現(xiàn)場(chǎng)恢復(fù)代碼安插于所述片段程序中。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海木雞網(wǎng)絡(luò)科技有限公司,未經(jīng)上海木雞網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710487460.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 環(huán)境服務(wù)系統(tǒng)以及環(huán)境服務(wù)事業(yè)
- 環(huán)境控制裝置、環(huán)境控制方法、環(huán)境控制程序及環(huán)境控制系統(tǒng)
- 環(huán)境檢測(cè)終端和環(huán)境檢測(cè)系統(tǒng)
- 環(huán)境調(diào)整系統(tǒng)、環(huán)境調(diào)整方法及環(huán)境調(diào)整程序
- 環(huán)境估計(jì)裝置和環(huán)境估計(jì)方法
- 用于環(huán)境艙的環(huán)境控制系統(tǒng)及環(huán)境艙
- 車輛環(huán)境的環(huán)境數(shù)據(jù)處理
- 環(huán)境取樣動(dòng)力頭、環(huán)境取樣方法
- 環(huán)境艙環(huán)境控制系統(tǒng)
- 環(huán)境檢測(cè)儀(環(huán)境貓)





