[發(fā)明專利]一種運(yùn)行協(xié)程的方法和裝置有效
| 申請?zhí)枺?/td> | 201710432602.8 | 申請日: | 2017-06-09 |
| 公開(公告)號: | CN107329812B | 公開(公告)日: | 2018-07-06 |
| 發(fā)明(設(shè)計)人: | 孫尚 | 申請(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 北京三高永信知識產(chǎn)權(quán)代理有限責(zé)任公司 11138 | 代理人: | 朱雅男 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 協(xié)程 存儲位置 函數(shù)執(zhí)行 運(yùn)行數(shù)據(jù) 計算機(jī)技術(shù)領(lǐng)域 目標(biāo)存儲位置 方法和裝置 觸發(fā)事件 存儲區(qū)域 記錄目標(biāo) 調(diào)用 掛起 存儲 激活 進(jìn)程 檢測 保證 | ||
1.一種運(yùn)行協(xié)程的方法,其特征在于,所述方法包括:
在目標(biāo)協(xié)程運(yùn)行的過程中,當(dāng)所述目標(biāo)協(xié)程掛起時,存儲所述目標(biāo)協(xié)程當(dāng)前的函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù),記錄目標(biāo)存儲位置和初始存儲位置的相對位置,其中,所述目標(biāo)存儲位置為所述函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù)的存儲位置,所述初始存儲位置為所述目標(biāo)協(xié)程所屬進(jìn)程的存儲區(qū)域的初始位置;
當(dāng)檢測到所述目標(biāo)協(xié)程的激活觸發(fā)事件時,根據(jù)所述相對位置,獲取所述函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù);
重新調(diào)用所述目標(biāo)協(xié)程的函數(shù),基于所述函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù),繼續(xù)運(yùn)行所述目標(biāo)協(xié)程;
在所述目標(biāo)協(xié)程運(yùn)行的過程中,如果所述目標(biāo)協(xié)程所屬的進(jìn)程出現(xiàn)故障,則將所述目標(biāo)協(xié)程對應(yīng)的故障次數(shù)加一;
如果所述目標(biāo)協(xié)程對應(yīng)的故障次數(shù)大于第一預(yù)設(shè)閾值,則在所述目標(biāo)協(xié)程所屬的進(jìn)程重新啟動時,終止運(yùn)行所述目標(biāo)協(xié)程和所述目標(biāo)協(xié)程的父協(xié)程,并將所述目標(biāo)協(xié)程所屬的協(xié)程類型對應(yīng)的故障次數(shù)加一,其中,所述目標(biāo)協(xié)程的父協(xié)程為觸發(fā)調(diào)用所述目標(biāo)協(xié)程的函數(shù)的協(xié)程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
當(dāng)創(chuàng)建所述目標(biāo)協(xié)程時,為所述目標(biāo)協(xié)程分配目標(biāo)存儲單元;
所述存儲所述目標(biāo)協(xié)程當(dāng)前的函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù),記錄目標(biāo)存儲位置和初始存儲位置的相對位置,包括:
將所述目標(biāo)協(xié)程當(dāng)前的函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù)存儲至所述目標(biāo)存儲單元,記錄所述目標(biāo)存儲單元的存儲位置與初始存儲位置的相對位置。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述重新調(diào)用所述目標(biāo)協(xié)程的函數(shù),包括:
如果所述目標(biāo)協(xié)程的執(zhí)行狀態(tài)為掛起狀態(tài),則重新調(diào)用所述目標(biāo)協(xié)程的函數(shù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
當(dāng)再次創(chuàng)建所述目標(biāo)協(xié)程時,如果所述目標(biāo)協(xié)程所屬的協(xié)程類型對應(yīng)的故障次數(shù)大于第二預(yù)設(shè)閾值,則拒絕創(chuàng)建所述目標(biāo)協(xié)程。
5.一種運(yùn)行協(xié)程的裝置,其特征在于,所述裝置包括:
存儲模塊,用于在目標(biāo)協(xié)程運(yùn)行的過程中,當(dāng)所述目標(biāo)協(xié)程掛起時,存儲所述目標(biāo)協(xié)程當(dāng)前的函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù),記錄目標(biāo)存儲位置和初始存儲位置的相對位置,其中,所述目標(biāo)存儲位置為所述函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù)的存儲位置,所述初始存儲位置為所述目標(biāo)協(xié)程所屬進(jìn)程的存儲區(qū)域的初始位置;
獲取模塊,用于當(dāng)檢測到所述目標(biāo)協(xié)程的激活觸發(fā)事件時,根據(jù)所述相對位置,獲取所述函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù);
運(yùn)行模塊,用于重新調(diào)用所述目標(biāo)協(xié)程的函數(shù),基于所述函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù),繼續(xù)運(yùn)行所述目標(biāo)協(xié)程;
故障記錄模塊,用于在所述目標(biāo)協(xié)程運(yùn)行的過程中,如果所述目標(biāo)協(xié)程所屬的進(jìn)程出現(xiàn)故障,則將所述目標(biāo)協(xié)程對應(yīng)的故障次數(shù)加一;
終止模塊,用于如果所述目標(biāo)協(xié)程對應(yīng)的故障次數(shù)大于第一預(yù)設(shè)閾值,則在所述目標(biāo)協(xié)程所屬的進(jìn)程重新啟動時,終止運(yùn)行所述目標(biāo)協(xié)程和所述目標(biāo)協(xié)程的父協(xié)程,并將所述目標(biāo)協(xié)程所屬的協(xié)程類型對應(yīng)的故障次數(shù)加一,其中,所述目標(biāo)協(xié)程的父協(xié)程為觸發(fā)調(diào)用所述目標(biāo)協(xié)程的函數(shù)的協(xié)程。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括:
分配模塊,用于當(dāng)創(chuàng)建所述目標(biāo)協(xié)程時,為所述目標(biāo)協(xié)程分配目標(biāo)存儲單元;
所述存儲模塊,具體用于:
將所述目標(biāo)協(xié)程當(dāng)前的函數(shù)執(zhí)行位置和運(yùn)行數(shù)據(jù)存儲至所述目標(biāo)存儲單元,記錄所述目標(biāo)存儲單元的存儲位置與初始存儲位置的相對位置。
7.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述運(yùn)行模塊,具體用于:
如果所述目標(biāo)協(xié)程的執(zhí)行狀態(tài)為掛起狀態(tài),則重新調(diào)用所述目標(biāo)協(xié)程的函數(shù)。
8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括:
創(chuàng)建模塊,用于當(dāng)再次創(chuàng)建所述目標(biāo)協(xié)程時,如果所述目標(biāo)協(xié)程所屬的協(xié)程類型對應(yīng)的故障次數(shù)大于第二預(yù)設(shè)閾值,則拒絕創(chuàng)建所述目標(biāo)協(xié)程。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710432602.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





