[發明專利]線程操作的實現方法和裝置有效
| 申請號: | 201810646532.0 | 申請日: | 2018-06-21 |
| 公開(公告)號: | CN108829502B | 公開(公告)日: | 2021-11-23 |
| 發明(設計)人: | 趙肖勇;康高杰 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/54 |
| 代理公司: | 北京恒博知識產權代理有限公司 11528 | 代理人: | 范勝祥 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 線程 操作 實現 方法 裝置 | ||
本發明公開了線程操作的實現方法和裝置。所述方法包括:獲取待執行任務的任務信息;根據所述任務信息選取相匹配的任務模板,以及根據所述任務信息和選取的任務模板生成任務;在本線程中執行所述任務,或者通知第一目標線程執行所述任務。該技術方案的有益效果在于,任務模板既支持泛化,比較通用,也支持特化,能夠在性能上有所提升,并且對于一個類型的任務可以采用同一任務模板,實現起來簡單方便,效率很高。
技術領域
本發明涉及計算機技術領域,具體涉及線程操作的實現方法和裝置。
背景技術
線程一般而言是程序運行的最小單元,線程操作雖小,卻是程序運行的基礎。因此,對線程操作進行性能上的改進一直是需要解決的問題。
例如,線程間可能存在需要傳遞參數的情況,隨著程序設計的不斷發展,開發者希望能夠實現傳遞的參數種類增多、個數也不固定;線程可能需要發出網絡請求,網絡請求較多,相應的回調也復雜,在這個過程中可能產生內存泄漏問題,等等。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的線程操作的實現方法和裝置。
依據本發明的一個方面,提供了一種線程操作的實現方法,包括:
獲取待執行任務的任務信息;
根據所述任務信息選取相匹配的任務模板,以及根據所述任務信息和選取的任務模板生成任務;
在本線程中執行所述任務,或者通知第一目標線程執行所述任務。
可選地,所述待執行任務為異步任務,與所述任務信息匹配的任務模板為異步任務模板。
可選地,所述異步任務模板是從指定的異步任務類中獲得的,所述異步任務類繼承自CWindowImpl類。
可選地,所述任務信息包括可調用對象和/或參數,所述根據所述任務信息和選取的任務模板生成任務包括:
將所述任務信息按所述異步任務模板封裝為異步任務對象。
可選地,所述將所述任務信息按所述異步任務模板封裝為異步任務對象包括:
利用綁定機制實現對所述異步任務對象的封裝。
可選地,所述通知第一目標線程執行所述任務包括:
將所述異步任務對象放入所述第一目標線程的消息隊列,以使所述第一目標線程在接收到執行信號從所述消息隊列中取出所述異步任務對象,執行所述異步任務。
可選地,所述任務信息包括執行結果捕捉函數;
當所述執行結果捕獲函數被第一目標線程調用時,在第二目標線程中執行所述執行結果捕獲函數,以從所述第一目標線程捕獲所述異步任務的執行結果。
可選地,所述執行結果捕獲函數是通過對lambda表達式進行封裝得到的。
可選地,所述執行結果捕獲函數包括類型萃取函數、第一捕獲函數和第二捕獲函數,所述第一捕獲函數和第二捕獲函數為重載函數;
所述類型萃取函數用于對所述執行結果進行類型萃取,若萃取出的類型原型不包含參數,則利用第一捕獲函數進行捕獲,若萃取出的類型原型包含參數,則利用第二捕獲函數進行捕獲。
可選地,該方法還包括:
判斷用于執行所述任務的第一目標線程是否存在,若不存在,則初始化用于執行所述任務的第一目標線程。
可選地,所述任務為網絡請求任務;
所述根據所述任務信息選取相匹配的任務模板,以及根據所述任務信息和選取的任務模板生成任務包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810646532.0/2.html,轉載請聲明來源鉆瓜專利網。





