[發明專利]一種運行協程的方法和裝置有效
| 申請號: | 201710432602.8 | 申請日: | 2017-06-09 |
| 公開(公告)號: | CN107329812B | 公開(公告)日: | 2018-07-06 |
| 發明(設計)人: | 孫尚 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 朱雅男 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 協程 存儲位置 函數執行 運行數據 計算機技術領域 目標存儲位置 方法和裝置 觸發事件 存儲區域 記錄目標 調用 掛起 存儲 激活 進程 檢測 保證 | ||
本發明公開了一種運行協程,屬于計算機技術領域。所述方法包括:在目標協程運行的過程中,當所述目標協程掛起時,存儲所述目標協程當前的函數執行位置和運行數據,記錄目標存儲位置和初始存儲位置的相對位置,其中,所述目標存儲位置為所述函數執行位置和運行數據的存儲位置,所述初始存儲位置為所述目標協程所屬進程的存儲區域的初始位置;當檢測到所述目標協程的激活觸發事件時,根據所述相對位置,獲取所述函數執行位置和運行數據;重新調用所述目標協程的函數,基于所述函數執行位置和運行數據,繼續運行所述目標協程。采用本發明,可以保證在進程rusume后,協程正常運行。
技術領域
本發明涉及計算機技術領域,特別涉及一種運行協程的方法和裝置。
背景技術
隨著計算機技術的不斷發展,服務端所提供的業務越來越復雜、多樣化,這些業務往往涉及大量的異步處理,而一般情況下會采用協程(用來實現某些獨立功能的函數)來進行這些異步處理。例如,游戲服務端提供的用戶登錄這一業務,涉及在線狀態檢測,賬戶安全檢測,賬戶數據獲取等多種異步處理,在實現用戶登錄的進程中,可以使用不同的協程分別進行上述異步處理。
業務的某一線程在進行至某一步時,如果需要獲取某個參數A,則可以創建相關協程,由該協程進行上述A的獲取處理。協程在獲取A的過程中,發現需要獲取參數B,則可以暫停處理(可稱為掛起),存儲協程的上下文(上下文包括協程的函數返回地址和運行數據),并記錄對應的存儲地址,同時向外部(可以是其它協程或線程)發送B的獲取請求。進而,當接收到外部返回的B后,協程可以再次運行(可稱為激活),即根據記錄的存儲地址,讀取協程上下文,然后基于B進行后續處理。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
現有服務端一般采用resume(重新啟動)機制來提高進程容災能力,主要是將整個業務的進程(進程中可以包括多個線程)的運行數據保存在共享存儲區域中,這樣,在進程意外崩潰再次重啟后,存儲在共享存儲區域中的運行數據也不會損壞或丟失。同時,在resume機制下,在進程重新啟動后,為了防止共享存儲區域中的運行數據被惡意竊取,一般都會對共享存儲區域內數據的存儲地址進行隨機偏移,這樣,協程掛起時存儲的上下文的實際存儲地址將會發生變化,協程中記錄的存儲地址將會失效,協程將無法正常運行。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種運行協程的方法和裝置。所述技術方案如下:
第一方面,提供了一種運行協程的方法,所述方法包括:
在目標協程運行的過程中,當所述目標協程掛起時,存儲所述目標協程當前的函數執行位置和運行數據,記錄目標存儲位置和初始存儲位置的相對位置,其中,所述目標存儲位置為所述函數執行位置和運行數據的存儲位置,所述初始存儲位置為所述目標協程所屬進程的存儲區域的初始位置;
當檢測到所述目標協程的激活觸發事件時,根據所述相對位置,獲取所述函數執行位置和運行數據;
重新調用所述目標協程的函數,基于所述函數執行位置和運行數據,繼續運行所述目標協程。
第二方面,提供了一種運行協程的裝置,所述裝置包括:
存儲模塊,用于在目標協程運行的過程中,當所述目標協程掛起時,存儲所述目標協程當前的函數執行位置和運行數據,記錄目標存儲位置和初始存儲位置的相對位置,其中,所述目標存儲位置為所述函數執行位置和運行數據的存儲位置,所述初始存儲位置為所述目標協程所屬進程的存儲區域的初始位置;
獲取模塊,用于當檢測到所述目標協程的激活觸發事件時,根據所述相對位置,獲取所述函數執行位置和運行數據;
運行模塊,用于重新調用所述目標協程的函數,基于所述函數執行位置和運行數據,繼續運行所述目標協程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710432602.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種滾刀刀座
- 下一篇:一種面向眾核處理器的全局感知數據主動預取方法及系統





