[發(fā)明專利]一種避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的方法和裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201610171969.4 | 申請(qǐng)日: | 2016-03-24 |
| 公開(kāi)(公告)號(hào): | CN107229632A | 公開(kāi)(公告)日: | 2017-10-03 |
| 發(fā)明(設(shè)計(jì))人: | 吳甲城;劉旭華 | 申請(qǐng)(專利權(quán))人: | 阿里巴巴集團(tuán)控股有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30;G06F9/52 |
| 代理公司: | 北京國(guó)昊天誠(chéng)知識(shí)產(chǎn)權(quán)代理有限公司11315 | 代理人: | 黃熊 |
| 地址: | 英屬開(kāi)曼群島大開(kāi)*** | 國(guó)省代碼: | 暫無(wú)信息 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 避免 線程 并發(fā) 訪問(wèn) 數(shù)據(jù)庫(kù) 方法 裝置 | ||
技術(shù)領(lǐng)域
本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的方法和裝置。
背景技術(shù)
為了提高操作系統(tǒng)在單位時(shí)間內(nèi)的處理效率,常常會(huì)使用并發(fā)的方法,并發(fā)是指在操作系統(tǒng)中,由多個(gè)線程在同一時(shí)間段內(nèi)同時(shí)運(yùn)行一個(gè)業(yè)務(wù)程序的處理過(guò)程。當(dāng)多個(gè)線程在同時(shí)運(yùn)行一個(gè)業(yè)務(wù)程序的處理過(guò)程中,多個(gè)線程中某幾個(gè)線程需要同時(shí)訪問(wèn)同一數(shù)據(jù)庫(kù)進(jìn)行相同操作(比如對(duì)同一數(shù)據(jù)進(jìn)行加減操作)時(shí),可能會(huì)引起沖突。為了避免上述沖突,引入了互斥鎖的概念,通過(guò)互斥鎖來(lái)保證在任一時(shí)刻,進(jìn)行相同操作的某幾個(gè)線程中只有一個(gè)線程訪問(wèn)該數(shù)據(jù)庫(kù)。
現(xiàn)有技術(shù)中,對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的線程的互斥鎖是將數(shù)據(jù)庫(kù)的唯一性索引作為要素得到的,唯一索引具有唯一性,由相同索引作為要素得到的互斥鎖才可以互斥,比如互斥鎖1的要素是a、b和c,互斥鎖2的要素是a、b和c,此時(shí)由于所述互斥鎖1和互斥鎖2的要素相同(都是a、b、c),因此互斥,所述互斥鎖1和互斥鎖2對(duì)應(yīng)的線程不能同時(shí)訪問(wèn)同一數(shù)據(jù)庫(kù)。然而,對(duì)于有些業(yè)務(wù)程序,不但需要避免相同操作的線程并發(fā)訪問(wèn)同一數(shù)據(jù)庫(kù),而且也需要避免不同操作的線程并發(fā)訪問(wèn)同一數(shù)據(jù)庫(kù),比如互斥鎖1的要素是a、b和c,互斥鎖2的要素是a、d和e,此時(shí)由于互斥鎖1和互斥鎖2的要素不一致,因此不互斥,所述互斥鎖1和互斥鎖2對(duì)應(yīng)的線程可以同時(shí)訪問(wèn)同一數(shù)據(jù)庫(kù)。
綜上所述,現(xiàn)有技術(shù)中存在無(wú)法避免不同操作的線程并發(fā)訪問(wèn)同一數(shù)據(jù)庫(kù)的問(wèn)題。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中存在無(wú)法避免不同操作的線程并發(fā)訪問(wèn)同一數(shù)據(jù)庫(kù)的問(wèn)題,本申請(qǐng)?zhí)峁┝艘环N避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的方法和裝置具體是這樣實(shí)現(xiàn)的:
一種避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的方法,所述方法包括:
當(dāng)預(yù)設(shè)業(yè)務(wù)程序的第一線程和第二線程同時(shí)訪問(wèn)預(yù)設(shè)數(shù)據(jù)庫(kù)時(shí),獲取所述預(yù)設(shè)業(yè)務(wù)程序的互斥鎖池;其中,所述互斥鎖池中存儲(chǔ)有將所述預(yù)設(shè)業(yè)務(wù)程序的指定要素進(jìn)行遍歷組合得到的多種互斥鎖;
判斷所述第一線程的互斥鎖和第二線程的互斥鎖是否同時(shí)位于所述互斥鎖池中;
若是,則判定所述第一線程和第二線程不能同時(shí)訪問(wèn)所述預(yù)設(shè)數(shù)據(jù)庫(kù)。
一種避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的方法,所述方法包括:
當(dāng)預(yù)設(shè)業(yè)務(wù)程序的第一線程訪問(wèn)預(yù)設(shè)數(shù)據(jù)庫(kù)時(shí),獲取所述預(yù)設(shè)業(yè)務(wù)程序的互斥鎖池,以及所述互斥鎖池對(duì)應(yīng)的適配互斥鎖;其中,所述互斥鎖池中存儲(chǔ)有將所述預(yù)設(shè)業(yè)務(wù)程序的指定要素進(jìn)行遍歷組合得到的多種互斥鎖;
若所述第一線程的互斥鎖位于所述互斥鎖池中,則將所述第一線程的互斥鎖轉(zhuǎn)換為所述互斥鎖池對(duì)應(yīng)的適配互斥鎖,并將所述第一線程的適配互斥鎖插入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中;
當(dāng)所述預(yù)設(shè)業(yè)務(wù)程序的第二線程訪問(wèn)所述預(yù)設(shè)數(shù)據(jù)庫(kù)時(shí),判斷所述第二線程的互斥鎖是否位于所述互斥鎖池中;
若是,則將所述第二線程的互斥鎖轉(zhuǎn)換為所述互斥鎖池對(duì)應(yīng)的適配互斥鎖,并將所述第二線程的所述適配互斥鎖與所述預(yù)設(shè)數(shù)據(jù)庫(kù)中已插入的所述適配互斥鎖進(jìn)行比較;
若判定所述第二線程的所述適配互斥鎖與所述預(yù)設(shè)數(shù)據(jù)庫(kù)中的所述適配互斥鎖互斥,則所述第二線程不能訪問(wèn)所述預(yù)設(shè)數(shù)據(jù)庫(kù)。
一種避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的裝置,所述裝置包括:
第一獲取模塊,用于當(dāng)預(yù)設(shè)業(yè)務(wù)程序的第一線程和第二線程同時(shí)訪問(wèn)預(yù)設(shè)數(shù)據(jù)庫(kù)時(shí),獲取所述預(yù)設(shè)業(yè)務(wù)程序的互斥鎖池;其中,所述互斥鎖池中存儲(chǔ)有將所述預(yù)設(shè)業(yè)務(wù)程序的指定要素進(jìn)行遍歷組合得到的多種互斥鎖;
判斷模塊,用于判斷所述第一線程的互斥鎖和第二線程的互斥鎖是否同時(shí)位于所述互斥鎖池中;
處理模塊,用于在所述第一線程的互斥鎖和第二線程的互斥鎖同時(shí)位于所述互斥鎖池中時(shí),判定所述第一線程和第二線程不能同時(shí)訪問(wèn)所述預(yù)設(shè)數(shù)據(jù)庫(kù)。
一種避免線程并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的裝置,所述裝置包括:
第一獲取模塊,用于當(dāng)預(yù)設(shè)業(yè)務(wù)程序的第一線程訪問(wèn)預(yù)設(shè)數(shù)據(jù)庫(kù)時(shí),獲取所述預(yù)設(shè)業(yè)務(wù)程序的互斥鎖池,以及所述互斥鎖池對(duì)應(yīng)的適配互斥鎖;其中,所述互斥鎖池中存儲(chǔ)有將所述預(yù)設(shè)業(yè)務(wù)程序的指定要素進(jìn)行遍歷組合得到的多種互斥鎖;
第一轉(zhuǎn)換模塊,用于若所述第一線程的互斥鎖位于所述互斥鎖池中,則將所述第一線程的互斥鎖轉(zhuǎn)換為所述互斥鎖池對(duì)應(yīng)的適配互斥鎖,并將所述第一線程的適配互斥鎖插入所述預(yù)設(shè)數(shù)據(jù)庫(kù)中;
判斷模塊,用于當(dāng)所述預(yù)設(shè)業(yè)務(wù)程序的第二線程訪問(wèn)所述預(yù)設(shè)數(shù)據(jù)庫(kù)時(shí),判斷所述第二線程的互斥鎖是否位于所述互斥鎖池中;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團(tuán)控股有限公司,未經(jīng)阿里巴巴集團(tuán)控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610171969.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 在多線程處理器中用于高速線程間中斷的方法和設(shè)備
- 一種多線程系統(tǒng)中實(shí)現(xiàn)實(shí)時(shí)監(jiān)控各線程狀態(tài)的方法
- 移動(dòng)終端系統(tǒng)線程池實(shí)現(xiàn)方法及裝置
- 一種基于策略模式的信號(hào)發(fā)生器多線程管理方法
- 多線程并發(fā)處理方法和多線程并發(fā)處理系統(tǒng)
- 分布式系統(tǒng)的線程管理方法和裝置
- 線程執(zhí)行方法、裝置、終端及存儲(chǔ)介質(zhì)
- 線程監(jiān)控方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種多核系統(tǒng)中多線程調(diào)度方法、裝置及設(shè)備
- 線程間通信方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 存儲(chǔ)器訪問(wèn)調(diào)度裝置、調(diào)度方法與存儲(chǔ)器訪問(wèn)控制系統(tǒng)
- 一種限制用戶訪問(wèn)的方法和裝置
- 一種訪問(wèn)信息提供方法及系統(tǒng)
- 數(shù)據(jù)訪問(wèn)權(quán)限的控制方法及裝置
- 基于智能家居系統(tǒng)的訪問(wèn)授權(quán)方法、裝置及設(shè)備
- 網(wǎng)站訪問(wèn)請(qǐng)求的動(dòng)態(tài)調(diào)度方法及裝置
- 基于訪問(wèn)頻率的監(jiān)測(cè)方法、裝置、設(shè)備和計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 訪問(wèn)憑證驗(yàn)證方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種應(yīng)用訪問(wèn)控制方法、系統(tǒng)和介質(zhì)
- 異常訪問(wèn)行為的檢測(cè)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)





