[發明專利]線程操作的實現方法和裝置有效
| 申請號: | 201810646532.0 | 申請日: | 2018-06-21 |
| 公開(公告)號: | CN108829502B | 公開(公告)日: | 2021-11-23 |
| 發明(設計)人: | 趙肖勇;康高杰 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/54 |
| 代理公司: | 北京恒博知識產權代理有限公司 11528 | 代理人: | 范勝祥 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 線程 操作 實現 方法 裝置 | ||
1.一種線程操作的實現方法,包括:
獲取待執行任務的任務信息;
根據所述任務信息選取相匹配的任務模板,以及根據所述任務信息和選取的任務模板生成任務;
通知第一目標線程執行所述任務;
其中,所述待執行任務為異步任務,與所述任務信息匹配的任務模板為異步任務模板;所述任務信息包括可調用對象和/或參數,所述根據所述任務信息和選取的任務模板生成任務包括:
將所述任務信息按所述異步任務模板封裝為異步任務對象;
所述通知第一目標線程執行所述任務包括:
將所述異步任務對象賦值放入所述第一目標線程的消息隊列,以使所述第一目標線程在接收到執行信號從所述消息隊列中取出所述異步任務對象,執行所述異步任務。
2.如權利要求1所述的方法,其中,所述異步任務模板是從指定的異步任務類中獲得的,所述異步任務類繼承自CWindowImpl類;
將所述任務信息按所述異步任務模板封裝為異步任務對象。
3.如權利要求1所述的方法,其中,所述將所述任務信息按所述異步任務模板封裝為異步任務對象包括:
利用綁定機制實現對所述異步任務對象的封裝。
4.如權利要求1所述的方法,其中,所述任務信息包括執行結果捕捉函數;
當所述執行結果捕獲函數被第一目標線程調用時,在第二目標線程中執行所述執行結果捕獲函數,以從所述第一目標線程捕獲所述異步任務的執行結果。
5.如權利要求4所述的方法,其中,所述執行結果捕獲函數是通過對lambda表達式進行封裝得到的。
6.如權利要求4或5所述的方法,其中,所述執行結果捕獲函數包括類型萃取函數、第一捕獲函數和第二捕獲函數,所述第一捕獲函數和第二捕獲函數為重載函數;
所述類型萃取函數用于對所述執行結果進行類型萃取,若萃取出的類型原型不包含參數,則利用第一捕獲函數進行捕獲,若萃取出的類型原型包含參數,則利用第二捕獲函數進行捕獲。
7.如權利要求1所述的方法,其中,該方法還包括:
判斷用于執行所述任務的第一目標線程是否存在,若不存在,則初始化用于執行所述任務的第一目標線程。
8.如權利要求1所述的方法,其中,所述任務為網絡請求任務;
所述根據所述任務信息選取相匹配的任務模板,以及根據所述任務信息和選取的任務模板生成任務包括:
將網絡請求的URL地址和回調函數通過網絡請求模板封裝為一個網絡請求。
9.如權利要求8所述的方法,其中,所述網絡請求模板是通過加載的網絡請求靜態庫獲得的。
10.如權利要求8所述的方法,其中,所述網絡請求模板包括如下的一種或多種:
從內存讀取數據的特化模板;
從文件讀取數據的特化模板;
向內存寫入數據的特化模板;
向文件寫入數據的特化模板。
11.如權利要求1所述的方法,其中,所述任務模板包括可變參數模板;
所述據所述任務信息和選取的任務模板生成任務包括:
對所述任務信息進行類型萃取,將任務信息轉化為通用類型的若干個參數;
根據所述若干個參數和所述可變參數模板生成任務。
12.如權利要求1所述的方法,其中,所述任務信息包括如下的一種或多種:
基本類型對象、lambda表達式、指針、智能指針、普通函數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810646532.0/1.html,轉載請聲明來源鉆瓜專利網。





