[發明專利]多線程訪問方法及裝置有效
| 申請號: | 201810327912.8 | 申請日: | 2018-04-12 |
| 公開(公告)號: | CN108762942B | 公開(公告)日: | 2020-10-16 |
| 發明(設計)人: | 楊亮;陳少杰;張文明 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 多線程 訪問 方法 裝置 | ||
1.一種多線程訪問方法,其特征在于,所述方法包括:
響應于線程對函數對象的訪問,調用全局鎖的全局臨界區對象對全局鍵值對表進行加鎖,所述全局鎖配置在預先創建的全局變量中,所述全局鍵值對表包括鎖對象以及與其對應的鍵值之間的對應關系;
獲取線程調用所述全局鎖加鎖時的鍵值;
根據所述加鎖時的鍵值查找所述全局鍵值對表,以獲取與該鍵值對應的鎖對象;
調用所述全局鎖的全局臨界區對象對所述全局鍵值對表進行解鎖;
調用獲取到的鎖對象為所述線程訪問的函數對象進行加鎖。
2.根據權利要求1所述的方法,其特征在于,若沒有從所述全局鍵值對表中查找到與加鎖時的鍵值對應的鎖對象,則創建新的鎖對象;以及
將創建的新的鎖對象、該鎖對象與指定的鍵值之間的對應關系添加到所述全局鍵值對表。
3.根據權利要求1或2所述的方法,其特征在于,當所述線程完成對所述函數對象的訪問后,所述方法還包括:
調用全局鎖的全局臨界區對象對所述全局鍵值對表進行加鎖;
獲取線程調用所述全局鎖解鎖時的鍵值;
根據所述解鎖時的鍵值查找所述全局鍵值對表,以獲取與該鍵值對應的鎖對象;
調用獲取到的鎖對象對所述線程訪問的函數對象進行解鎖;
調用所述全局鎖的全局臨界區對象對所述全局鍵值對表進行解鎖。
4.根據權利要求1或2所述的方法,其特征在于,所述全局鍵值對表為哈希表、線性表、或樹狀表中的任意一個。
5.一種多線程訪問裝置,其特征在于,所述裝置包括:
第一加鎖模塊,用于響應于線程對函數對象的訪問,調用全局鎖的全局臨界區對象對全局鍵值對表進行加鎖,所述全局鎖配置在預先創建的全局變量中,所述全局鍵值對表包括鎖對象以及與其對應的鍵值之間的對應關系;
獲取模塊,用于獲取線程調用所述全局鎖加鎖時的鍵值;
查找模塊,用于根據所述加鎖時的鍵值查找所述全局鍵值對表,以獲取與該鍵值對應的鎖對象;
第一解鎖模塊,用于調用所述全局鎖的全局臨界區對象對所述全局鍵值對表進行解鎖;
第二加鎖模塊,用于調用獲取到的鎖對象為所述線程訪問的函數對象進行加鎖。
6.根據權利要求5所述的裝置,其特征在于,所述裝置還包括:
添加模塊,用于當沒有從所述全局鍵值對表中查找到與加鎖時的鍵值對應的鎖對象時,創建新的鎖對象,以及將創建的新的鎖對象、該鎖對象與指定的鍵值之間的對應關系添加到所述全局鍵值對表。
7.根據權利要求5或6所述的裝置,其特征在于,所述第一加鎖模塊,還用于當所述線程完成對所述函數對象的訪問后,調用全局鎖的全局臨界區對象對所述全局鍵值對表進行加鎖;
所述獲取模塊,還用于獲取線程調用所述全局鎖解鎖時的鍵值;
所述查找模塊,還用于根據所述解鎖時的鍵值查找所述全局鍵值對表,以獲取與該鍵值對應的鎖對象;
所述裝置還包括:
第二解鎖模塊,用于調用獲取到的鎖對象對所述線程訪問的函數對象進行解鎖;
所述第一解鎖模塊,還用于調用所述全局鎖的全局臨界區對象對所述全局鍵值對表進行解鎖。
8.根據權利要求5或6所述的裝置,其特征在于,所述全局鍵值對表為哈希表、線性表、或樹狀表中的任意一個。
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-4任一項所述方法的步驟。
10.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-4任一項所述方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810327912.8/1.html,轉載請聲明來源鉆瓜專利網。





