[發明專利]一種數據庫鎖的實現方法、裝置、設備及可讀存儲介質在審
| 申請號: | 202011041096.8 | 申請日: | 2020-09-28 |
| 公開(公告)號: | CN112231131A | 公開(公告)日: | 2021-01-15 |
| 發明(設計)人: | 邱海港 | 申請(專利權)人: | 北京金山云網絡技術有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07;G06F16/21 |
| 代理公司: | 北京開陽星知識產權代理有限公司 11710 | 代理人: | 張子青 |
| 地址: | 100085 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 實現 方法 裝置 設備 可讀 存儲 介質 | ||
本公開涉及一種數據庫鎖的實現方法、裝置、設備及可讀存儲介質。本公開通過待訪問的目標數據的標識信息,在數據庫中給目標數據加鎖,若加鎖失敗,可以繼續給目標數據加鎖,如果連續給目標數據加鎖的次數達到了預設次數,且還是沒有給目標數據加鎖成功,則可以按照預設時間間隔給目標數據加鎖,使得計算機系統中的線程并不會因為無法給目標數據加鎖導致無法釋放CPU資源進入阻塞狀態,從而避免線程的狀態頻繁變化,在高并發且資源競爭的條件下,可有效降低由于線程狀態變化及線程調度所產生的耗時。
技術領域
本公開涉及信息技術領域,尤其涉及一種數據庫鎖的實現方法、裝置、設備及可讀存儲介質。
背景技術
在數據庫中,當多個線程訪問同一個資源時,為了避免多個線程同時對該資源進行訪問而產生沖突,可以只允許一個線程對該資源進行訪問。例如,多個線程中的一個線程可以給該資源加鎖,例如,加互斥鎖,以鎖住該資源,從而避免其他線程訪問該資源。
當一個線程需要訪問某一資源時,若該資源已經被其他線程加上了鎖,那么該線程將由于拿不到該資源上的鎖而發生阻塞,進而該線程釋放掉中央處理器(centralprocessing unit,CPU)資源后進入阻塞狀態。當其他線程釋放掉該資源上的鎖之后,該線程才能被激活。
在高并發且資源競爭的條件下,線程的狀態變化及線程調度會消耗大量的時間。
發明內容
為了解決上述技術問題或者至少部分地解決上述技術問題,本公開提供了一種數據庫鎖的實現方法、裝置、設備及可讀存儲介質,以避免線程的狀態頻繁變化,在高并發且資源競爭的條件下,可有效降低由于線程狀態變化及線程調度所產生的耗時。
第一方面,本公開實施例提供一種數據庫鎖的實現方法,包括:
獲取數據訪問請求,所述數據訪問請求包括待訪問的目標數據的標識信息;
根據所述目標數據的標識信息,在數據庫中給所述目標數據加鎖;
若連續給所述目標數據加鎖的次數達到預設次數,且給所述目標數據加鎖失敗,則按照預設時間間隔給所述目標數據加鎖。
第二方面,本公開實施例提供一種數據庫鎖的實現裝置,包括:
獲取模塊,用于獲取數據訪問請求,所述數據訪問請求包括待訪問的目標數據的標識信息;
加鎖模塊,用于根據所述目標數據的標識信息,在數據庫中給所述目標數據加鎖;若連續給所述目標數據加鎖的次數達到預設次數,且給所述目標數據加鎖失敗,則按照預設時間間隔給所述目標數據加鎖。
第三方面,本公開實施例提供一種數據庫鎖的實現設備,包括:
存儲器;
處理器;以及
計算機程序;
其中,所述計算機程序存儲在所述存儲器中,并被配置為由所述處理器執行以實現如第一方面所述的方法。
第四方面,本公開實施例提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行以實現第一方面所述的方法。
本公開實施例提供的一種數據庫鎖的實現方法、裝置、設備及可讀存儲介質,通過待訪問的目標數據的標識信息,在數據庫中給目標數據加鎖,若加鎖失敗,可以繼續給目標數據加鎖,如果連續給目標數據加鎖的次數達到了預設次數,且還是沒有給目標數據加鎖成功,則可以按照預設時間間隔給目標數據加鎖,使得計算機系統中的線程并不會因為無法給目標數據加鎖而釋放CPU資源進入阻塞狀態,從而避免線程的狀態頻繁變化,在高并發且資源競爭的條件下,可有效降低由于線程狀態變化及線程調度所產生的耗時。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京金山云網絡技術有限公司,未經北京金山云網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011041096.8/2.html,轉載請聲明來源鉆瓜專利網。





