[發明專利]在用戶空間中建立線程之間的隊列有效
| 申請號: | 201811330977.4 | 申請日: | 2018-11-09 |
| 公開(公告)號: | CN111176855B | 公開(公告)日: | 2023-10-27 |
| 發明(設計)人: | 李博杰;崔天一;王子博;白巍;張霖濤 | 申請(專利權)人: | 微軟技術許可有限責任公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京世輝律師事務所 16093 | 代理人: | 李崢宇 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用戶 空間 建立 線程 之間 隊列 | ||
1.一種計算機實現的方法,包括:
創建第一應用的第一線程以及第二應用的第二線程和第三線程;
在操作系統的用戶空間中建立所述第一應用與所述第二應用之間的套接字連接,所述第一線程、第二線程以及第三線程共享所述套接字連接;以及
建立所述第一線程與所述第二線程之間的第一隊列以及所述第一線程與所述第三線程之間的第二隊列,所述第一隊列不同于所述第二隊列。
2.根據權利要求1所述的方法,其中建立所述第一線程與所述第二線程之間的第一隊列以及所述第一線程與所述第三線程之間的第二隊列包括:
在所述第一應用中的每個發送線程與所述第二應用中的每個接收線程之間建立單獨的隊列。
3.根據權利要求1所述的方法,還包括:
響應于所述第一線程從所述第二線程接收到接管請求,從所述第一線程向所述第三線程轉發所述接管請求;以及
經由所述第一線程從所述第三線程向所述第二線程發送用于接管的令牌。
4.根據權利要求1所述的方法,還包括:
響應于所述第一應用發起用于創建子進程的系統調用(fork)操作:
為所述第一應用創建與所述第一線程對應的第四線程;
建立所述第一線程與所述第二線程之間的第一新隊列以及所述第四線程與所述第二線程之間的第二新隊列;以及
關閉所述第一線程與所述第二線程之間的所述第一隊列。
5.根據權利要求1所述的方法,其中建立所述第一線程與所述第二線程之間的第一隊列包括:
將所述第一線程與所述第二線程之間的多個連接合并到第一隊列中,所述第一隊列是用于傳輸所述多個連接的數據的單個隊列并且支持從任何位置取回連接中的數據。
6.根據權利要求5所述的方法,還包括:
通過掃描所述第一隊列來確定所述多個連接中存在待被讀取的數據的連接。
7.根據權利要求1所述的方法,其中所述第一線程為發送線程,所述第二線程為接收線程,并且建立所述第一線程與所述第二線程之間的第一隊列還包括:
建立所述第一線程與所述第二線程之間的緊急隊列,所述第一隊列用于傳輸數據和按序的控制命令,并且所述緊急隊列用于傳輸帶外控制命令;以及
響應于所述緊急隊列中存在新消息,使得所述第二線程立即取回所述新消息。
8.根據權利要求7所述的方法,還包括:
響應于經由所述緊急隊列從所述第一線程接收到用于觸發垃圾回收的命令,掃描所述第一隊列中空閑空間并且向所述第一隊列的尾部移動消息。
9.一種計算設備,包括:
處理單元;
存儲器,耦合至所述處理單元并且存儲有指令,所述指令在由所述處理單元執行時執行以下動作:
創建第一應用的第一線程以及第二應用的第二線程和第三線程;
在操作系統的用戶空間中建立所述第一應用與所述第二應用之間的套接字連接,所述第一線程、第二線程以及第三線程共享所述套接字連接;以及
建立所述第一線程與所述第二線程之間的第一隊列以及所述第一線程與所述第三線程之間的第二隊列,所述第一隊列不同于所述第二隊列。
10.根據權利要求9所述的設備,其中建立所述第一線程與所述第二線程之間的第一隊列以及所述第一線程與所述第三線程之間的第二隊列包括:
在所述第一應用中的每個發送線程與所述第二應用中的每個接收線程之間建立單獨的隊列。
11.根據權利要求9所述的設備,所述動作還包括:
響應于所述第一線程從所述第二線程接收到接管請求,從所述第一線程向所述第三線程轉發所述接管請求;以及
經由所述第一線程從所述第三線程向所述第二線程發送用于接管的令牌。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟技術許可有限責任公司,未經微軟技術許可有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811330977.4/1.html,轉載請聲明來源鉆瓜專利網。





