[發明專利]一種協程實現方法及裝置有效
| 申請號: | 201610938968.8 | 申請日: | 2016-10-25 |
| 公開(公告)號: | CN107992344B | 公開(公告)日: | 2021-03-02 |
| 發明(設計)人: | 朱新宇;司超;王廣超;袁易之;楊錫坤 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 王仲凱 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 方法 裝置 | ||
本發明實施例提供一種協程實現方法及裝置,該方法包括:根據協程對應函數的腳本語言字節碼,確定協程對應的函數調用棧所需的目標內存空間;其中,一個協程對應一個函數調用棧;為所述函數調用棧分配與所述目標內存空間相應的獨立內存空間;其中,各協程對應的函數調用棧的內存空間互不干擾;在所述獨立內存空間中,為所述函數調用棧的各結構體填充內容;對所述函數調用棧進行協程執行前的預處理;將虛擬機的執行狀態指向所述函數調用棧,以執行所述協程。進一步,本發明實施例還可以實現協程的切換。本發明實施例可以提升協程實現的效率。
技術領域
本發明涉及程序技術領域,具體涉及一種協程實現方法及裝置。
背景技術
協程作為用戶態的一種可重入的子程序在計算機程序、數據處理過程中應用廣泛;目前集成協程能力的框架一般通過Generator(迭代器)提供的函數重入能力實現,即將一個Generator作為一個協程,并在應用層面實現協程的調度器。
然而,基于Generator實現協程,必須采用Generator的yield關鍵字(yield代表一種控制權的放棄、轉移);一旦協程對應的函數采用了yield關鍵字,函數的上層調用都必須采用yield去調用子函數,且同時要定義yield關鍵字的函數調用和函數返回語義;可見,基于Generator,采用yield關鍵字實現協程,會帶入yield關鍵字本身存在的實現較復雜的問題,導致協程的實現較為復雜、麻煩,降低了協程的實現效率。
發明內容
有鑒于此,本發明實施例提供一種協程實現方法及裝置,以降低協程實現的復雜度,提升協程實現的效率。
為實現上述目的,本發明實施例提供如下技術方案:
一種協程實現方法,包括:
根據協程對應函數的腳本語言字節碼,確定協程對應的函數調用棧所需的目標內存空間;其中,一個協程對應一個函數調用棧;
為所述函數調用棧分配與所述目標內存空間相應的獨立內存空間;其中,各協程對應的函數調用棧的內存空間互不干擾;
在所述獨立內存空間中,為所述函數調用棧的各結構體填充內容;
對所述函數調用棧進行協程執行前的預處理;
將虛擬機的執行狀態指向所述函數調用棧,以執行所述協程。
本發明實施例還提供一種協程實現裝置,包括:
目標內存空間確定模塊,用于根據協程對應函數的腳本語言字節碼,確定協程對應的函數調用棧所需的目標內存空間;其中,一個協程對應一個函數調用棧;
空間分配模塊,用于為所述函數調用棧分配與所述目標內存空間相應的獨立內存空間;其中,各協程對應的函數調用棧的內存空間互不干擾;
內容填充模塊,用于在所述獨立內存空間中,為所述函數調用棧的各結構體填充內容;
預處理模塊,用于對所述函數調用棧進行協程執行前的預處理;
執行模塊,用于將虛擬機的執行狀態指向所述函數調用棧,以執行所述協程。
基于上述技術方案,本發明實施例提供的協程實現方法,可以為協程分配相應的函數調用棧,從而通過確定函數調用棧所需的內存空間,可為協程在內存中分配獨立的函數調用棧所用空間,實現不同協程的函數調用棧執行互不干擾;然后在獨立的內存空間中,將協程在函數調用棧的各結構體的內容進行填充,并進行協程執行前的處理,可為協程劃分獨立的可用的函數調用棧,使得協程對應的函數調用棧具有協程能力,進而將虛擬機的執行狀態指向所述函數調用棧,可實現相應協程的執行。本發明實施例提供的協程實現方法,可直接基于腳本語言的開發環境底層的內存空間,為每個協程劃分獨立的函數調用棧,從而直接基于協程的函數調用棧的調用,來實現協程執行,降低了協程實現的復雜度,提升了協程實現的效率。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610938968.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:可實現試劑條快速到位的手持式免疫層析分析儀
- 下一篇:防落型免疫層析分析儀





