[發明專利]一種多線程的加鎖方法及服務器在審
| 申請號: | 201710053628.1 | 申請日: | 2017-01-22 |
| 公開(公告)號: | CN108345495A | 公開(公告)日: | 2018-07-31 |
| 發明(設計)人: | 石鵬;趙健;李軼 | 申請(專利權)人: | 北京國雙科技有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 100086 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 目標數據 目標對象 多線程 加鎖 服務器 訪問請求 訪問數據 數組對象 集合 標識確定 預置 訪問 釋放 攜帶 響應 | ||
本發明實施例公開了一種多線程的加鎖方法及服務器。本發明實施例方法包括:接收待訪問的目標數據的訪問請求,所述訪問請求攜帶所述目標數據的標識;根據所述標識確定數組對象集合中的目標對象,所述標識與所述目標對象具有對應關系,所述數組對象集合中包括預置數量的對象;使用所述目標對象對所述目標數據進行加鎖;當所述目標數據訪問結束時,釋放所述目標數據。本發明實施例中還提供了一種服務器。本發明提供的實施例中當多線程訪問數據時,極大的提高了訪問數據的響應速度。
技術領域
本發明涉及計算機領域,尤其涉及一種多線程的加鎖方法及服務器。
背景技術
多線程(multithreading),是指從軟件或者硬件上實現多個線程并發執行的技術。具有多線程能力的計算機因有硬件支持而能夠在同一時間執行多于一個線程,進而提升整體處理性能。使用多線程技術,提升響應速度以及用戶體驗等。但是多線程技術難免就會碰到數據同步的問題,而常用的一種解決方案就是加鎖。例如,原子自增,原子自減,即使是多個線程同時訪問,來保證數據的一致性。
傳統的方法中,使用單一鎖進行線程控制。例如,通過單一鎖的方式來統計訪問量,采用Redis內存數據庫進行訪問量的統計,Redis提供了一種原子級別的自增操作,也就是無論并發訪問用戶有多少,都會一一進行統計,不會造成數據丟失,即只有當用戶設備獲取到鎖對象后才能進行數據操作(例如讀取操作),如果無法獲取鎖對象,則進行等待,直到獲取鎖為止。請結合圖1進行理解,圖1為傳統方法中多線程的加鎖方法的場景示意圖,當用戶訪問不同的數據(例如,該不同的數據為兩篇不同的文章)的時候,需要逐一加鎖,增加訪問量,釋放鎖,極其浪費時間(此時的操作和串行執行無異)。
綜上所述,傳統方法中,對于多線程訪問,尤其是并發訪問不同的數據時,傳統方式的加鎖方式導致數據訪問效率低下。
發明內容
本發明實施例提供了一種多線程的加鎖方法及服務器,用于提高訪問數據的響應速度。
第一方面,本發明實施例提供了一種多線程的加鎖方法,包括:
接收待訪問的目標數據的訪問請求,所述訪問請求攜帶所述目標數據的標識;
根據所述標識確定數組對象集合中的目標對象,所述標識與所述目標對象具有對應關系,所述數組對象集合中包括預置數量的對象;
使用所述目標對象對所述目標數據進行加鎖;
當所述目標數據訪問結束時,釋放所述目標數據。
在一種可能的實現方式中,所述根據所述標識確定數組對象集合中的目標對象包括:
對所述標識進行哈希散列計算,得到散列值;
對所述散列值與預置值進行求余運算,得到結果值,所述預置值為所述數組對象集合中對象的數量值;
根據所述結果值確定所述目標對象。
在一種可能的實現方式中,所述接收待訪問的目標數據的訪問請求之后,所述方法還包括:
確定所述目標數據的類別;
若所述目標數據的類別為熱點數據,則為所述目標數據分配目標預置對象,所述熱點數據的標識與預置對象具有映射關系,所述熱點數據為歷史訪問量大于或者等于預設閾值的數據;
使用所述目標預置對象對所述目標數據進行加鎖。
在一種可能的實現方式中,若所述目標數據的類別為非熱點數據,則觸發執行根據所述標識確定數組對象集合中的目標對象的步驟,所述非熱點數據為歷史訪問量小于預設閾值的數據。
在一種可能的實現方式中,所述標識為數值,所述根據所述標識確定數組對象集合中的目標對象,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京國雙科技有限公司,未經北京國雙科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710053628.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種定時執行代碼的方法及裝置
- 下一篇:一種運行應用程序的方法及裝置





