[發(fā)明專利]對資源限制訪問的方法、裝置及終端設(shè)備在審
| 申請?zhí)枺?/td> | 201810251731.1 | 申請日: | 2018-03-26 |
| 公開(公告)號: | CN108446181A | 公開(公告)日: | 2018-08-24 |
| 發(fā)明(設(shè)計)人: | 楊亮;張文明;陳少杰 | 申請(專利權(quán))人: | 武漢斗魚網(wǎng)絡(luò)科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/52 |
| 代理公司: | 北京超凡志成知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11371 | 代理人: | 吳迪 |
| 地址: | 430000 湖北省武漢市東湖新技術(shù)*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 計數(shù)變量 預(yù)設(shè) 自旋 終端設(shè)備 資源限制 訪問 加鎖 解鎖 線程 調(diào)用 互聯(lián)網(wǎng)技術(shù) 調(diào)用系統(tǒng) 函數(shù)檢測 使用系統(tǒng) 系統(tǒng)資源 線程調(diào)用 運行效率 閾值配置 讀寫 占用 節(jié)約 配置 | ||
1.一種對資源限制訪問的方法,其特征在于,所述方法通過定義的自旋鎖限制多個線程對資源的同時訪問,所述自旋鎖包括鎖計數(shù)變量、加鎖函數(shù)以及解鎖函數(shù),
當(dāng)前線程調(diào)用所述加鎖函數(shù)中的指定函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值;
若所述鎖計數(shù)變量為預(yù)設(shè)初值,則將所述鎖計數(shù)變量配置為預(yù)設(shè)閾值,以供當(dāng)前線程占用所述自旋鎖對所述資源進行訪問;
當(dāng)所述當(dāng)前線程訪問完所述資源后,調(diào)用所述解鎖函數(shù)將所述鎖計數(shù)變量由所述預(yù)設(shè)閾值配置為所述預(yù)設(shè)初值,以供其他線程調(diào)用所述自旋鎖。
2.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前線程調(diào)用所述加鎖函數(shù)中的指定函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值的步驟包括:
當(dāng)前線程調(diào)用所述加鎖函數(shù)中的由操作系統(tǒng)提供的原子性操作函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值。
3.如權(quán)利要求2所述的方法,其特征在于,所述當(dāng)前線程調(diào)用所述加鎖函數(shù)中的由操作系統(tǒng)提供的原子性操作函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值的步驟包括:
定義所述由操作系統(tǒng)提供的原子性操作函數(shù)的參數(shù),所述參數(shù)分別為鎖計數(shù)變量、第一參數(shù)和第二參數(shù);
若所述鎖計數(shù)變量與所述第二參數(shù)相等,則所述鎖計數(shù)變量為預(yù)設(shè)初值。
4.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前線程調(diào)用所述加鎖函數(shù)中的指定函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值的步驟包括:
所述當(dāng)前線程調(diào)用所述加鎖函數(shù)中的由C++11提供的原子性操作函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值。
5.如權(quán)利要求4所述的方法,其特征在于,所述當(dāng)前線程調(diào)用所述加鎖函數(shù)中的由C++11提供的原子性操作函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值的步驟包括:
定義所述由C++11提供的原子性操作函數(shù)的參數(shù),所述參數(shù)包括第一參數(shù)和第二參數(shù);
若所述鎖計數(shù)變量與所述第一參數(shù)相等,則所述鎖計數(shù)變量為預(yù)設(shè)初值。
6.一種對資源限制訪問的裝置,其特征在于,所述裝置通過定義的自旋鎖限制多個線程對資源的同時訪問,所述自旋鎖包括鎖計數(shù)變量、加鎖函數(shù)以及解鎖函數(shù),
檢測模塊,用于當(dāng)前線程調(diào)用所述加鎖函數(shù)中的指定函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值;
第一配置模塊,用于若所述鎖計數(shù)變量為預(yù)設(shè)初值,則將所述鎖計數(shù)變量配置為預(yù)設(shè)閾值,以供當(dāng)前線程占用所述自旋鎖對所述資源進行訪問;
第二配置模塊,用于當(dāng)所述當(dāng)前線程訪問完所述資源后,調(diào)用所述解鎖函數(shù)將所述鎖計數(shù)變量由所述預(yù)設(shè)閾值配置為所述預(yù)設(shè)初值,以供其他線程調(diào)用所述自旋鎖。
7.如權(quán)利要求6所述的裝置,其特征在于,所述檢測模塊還用于:當(dāng)前線程調(diào)用所述加鎖函數(shù)中的由操作系統(tǒng)提供的原子性操作函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值。
8.如權(quán)利要求7所述的裝置,其特征在于,所述檢測模塊還用于:定義所述由操作系統(tǒng)提供的原子性操作函數(shù)的參數(shù),所述參數(shù)分別為鎖計數(shù)變量、第一參數(shù)和第二參數(shù);
若所述鎖計數(shù)變量與所述第二參數(shù)相等,則所述鎖計數(shù)變量為預(yù)設(shè)初值。
9.如權(quán)利要求6所述的裝置,其特征在于,所述檢測模塊還用于:所述當(dāng)前線程調(diào)用所述加鎖函數(shù)中的由C++11提供的原子性操作函數(shù)檢測所述鎖計數(shù)變量是否為預(yù)設(shè)初值。
10.一種終端設(shè)備,其特征在于,所述終端設(shè)備包括存儲器和處理器,所述存儲器用于存儲計算機程序代碼,所述處理器用于執(zhí)行存儲于所述存儲器中的計算機程序代碼以實現(xiàn)如權(quán)利要求1-5任一一項所述的對資源限制訪問的方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢斗魚網(wǎng)絡(luò)科技有限公司,未經(jīng)武漢斗魚網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810251731.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





