[發明專利]控制異步調用的返回的方法和裝置有效
| 申請號: | 201210091156.6 | 申請日: | 2012-03-30 |
| 公開(公告)號: | CN103365707A | 公開(公告)日: | 2013-10-23 |
| 發明(設計)人: | 王華紅;賀顧一;鄭超;王強;鐘思奇;康濤;朱賢君 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京市中咨律師事務所 11247 | 代理人: | 周良玉;于靜 |
| 地址: | 美國*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 控制 異步 調用 返回 方法 裝置 | ||
技術領域
本發明涉及程序中的異步調用,更具體而言,涉及對異步調用進行控制的方法和裝置。
背景技術
在許多程序中都會應用到異步調用。在進行異步調用時,調用方的主線程不需要等待調用函數的執行,而是繼續執行接下來的代碼。一旦被調用方將調用函數執行完畢,就會反過來調用原來的調用方來返回結果,這稱為回調。相應地,主線程通過回調函數獲得執行結果。然而,異步調用的一個問題是調用的返回時間無法預知。因此,在存在多個異步調用的情況下,相應的回調函數的執行順序無法預先確定。這就為程序的調試和除錯帶來了很大的困難。
圖1示出包含異步調用的程序的執行流程。在圖1的例子中,主程序依次執行兩個異步調用AS?Call?1和AS?Call?2,然后繼續執行其他函數和功能,例如同步調用函數SC1,SC2等。對于這兩個異步調用函數,開發人員可能預期依次獲得這兩個調用的返回結果,例如在SC1和SC2之間獲得AS?Call1的回調,在SC2之后獲得AS?Call2的回調。然而,取決于被調用方對AS?Call?1和AS?Call?2的執行情況,對應的回調函數的執行順序有可能發生變化。例如,在特定情況下,AS?Call?2的返回時間可能早于AS?Call1(如圖中虛線所示),這種情況下主程序的執行結果有可能不同于預期的依次返回的情況,從而發生錯誤。由于這樣的錯誤僅僅在異步調用的特定返回順序下出現,因此難以通過常規的程序調試來發現。
由于無法控制異步調用的返回時間,為了進行除錯,開發人員往往需要將程序運行大量次數,以期從中再現導致錯誤的異步調用返回順序。然而,這樣的方式相當耗時,并且仍然無法確保除錯的效果。
在另一種方案中,開發人員從程序中提取出與異步調用相關的邏輯,并對其進行測試。假定程序中有5處異步調用,其中一種特定的返回順序會導致程序出現錯誤,那么開發人員需要耗費大量時間來排列所有可能的返回順序,并從中找出導致錯誤的一種順序。并且,由于各種程序框架的快速發展,從復雜的程序功能塊中提取出單個邏輯也非常困難。
因此,希望能夠對異步調用的返回進行控制,從而便于程序的調試和除錯。
發明內容
鑒于以上提出的問題,提出本發明,旨在提供一種方案,能夠對異步調用的返回進行控制。
根據本發明一個實施例,提供一種控制程序中的異步調用的返回的方法,包括:檢測程序中的至少一個異步調用;響應于檢測到程序中設置的斷點,在所述斷點處中斷所述程序的執行;獲取與所述至少一個異步調用相對應的至少一個回調;根據用戶選擇將至少一個回調分別插入到程序的指定位置;以及響應于所述至少一個回調被插入到程序中,從所述斷點處繼續執行所述程序。
根據本發明另一實施例,提供一種控制程序中的異步調用的返回的裝置,包括:檢測單元,配置為檢測程序中的至少一個異步調用;中斷單元,配置為響應于檢測到程序中設置的斷點,在所述斷點處中斷所述程序的執行;回調獲取單元,配置為獲取與所述至少一個異步調用相對應的至少一個回調;回調插入單元,配置為根據用戶選擇將至少一個回調分別插入到程序的指定位置;以及執行單元,配置為響應于所述至少一個回調被插入到程序中,從所述斷點處繼續執行所述程序。
利用本發明實施例的方法和裝置,開發人員能夠在程序調試階段根據需要對異步調用的返回進行,從而更好地對程序進行測試和除錯。
附圖說明
通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
圖1示出包含異步調用的程序的執行流程;
圖2示出了適于用來實現本發明實施方式的示例性計算系統100的框圖;
圖3示出根據本發明一個實施例的控制異步調用的返回的方法;以及
圖4示出根據本發明一個實施例的控制異步調用返回的裝置的框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的優選實施方式。雖然附圖中顯示了本公開的優選實施方式,然而應該理解,可以以各種形式實現本公開而不應被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210091156.6/2.html,轉載請聲明來源鉆瓜專利網。





