[發(fā)明專(zhuān)利]無(wú)鎖化的數(shù)據(jù)結(jié)構(gòu)構(gòu)建方法和寫(xiě)入數(shù)據(jù)、讀取數(shù)據(jù)的方法有效
| 申請(qǐng)?zhí)枺?/td> | 201910253786.0 | 申請(qǐng)日: | 2019-03-30 |
| 公開(kāi)(公告)號(hào): | CN110134439B | 公開(kāi)(公告)日: | 2021-09-28 |
| 發(fā)明(設(shè)計(jì))人: | 劉靖非 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京百卓網(wǎng)絡(luò)技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F9/38 | 分類(lèi)號(hào): | G06F9/38 |
| 代理公司: | 北京集智東方知識(shí)產(chǎn)權(quán)代理有限公司 11578 | 代理人: | 陳亞斌;關(guān)兆輝 |
| 地址: | 100095 *** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 無(wú)鎖化 數(shù)據(jù)結(jié)構(gòu) 構(gòu)建 方法 寫(xiě)入 數(shù)據(jù) 讀取 | ||
1.一種無(wú)鎖化的數(shù)據(jù)結(jié)構(gòu)構(gòu)建方法,其特征在于,所述方法包括:
設(shè)置數(shù)據(jù)隊(duì)列,所述數(shù)據(jù)隊(duì)列包括隊(duì)列體;
將所述隊(duì)列體劃分為依序連續(xù)排列的多個(gè)隊(duì)列元素,按照隊(duì)列元素進(jìn)入隊(duì)列體的時(shí)間順序采用數(shù)字序號(hào)依次記錄各隊(duì)列元素;
根據(jù)位于所述隊(duì)列體頭部的隊(duì)列元素的數(shù)字序號(hào)生成向所述隊(duì)列體寫(xiě)入數(shù)據(jù)的生產(chǎn)者的生產(chǎn)進(jìn)度游標(biāo);所述生產(chǎn)進(jìn)度游標(biāo)包括生產(chǎn)者游標(biāo)序號(hào),將確定出的位于所述隊(duì)列體頭部的隊(duì)列元素的數(shù)字序號(hào)作為生產(chǎn)者游標(biāo)序號(hào);
根據(jù)位于所述隊(duì)列體尾部的隊(duì)列元素的數(shù)字序號(hào)生成從所述隊(duì)列體讀取數(shù)據(jù)的消費(fèi)者的消費(fèi)進(jìn)度游標(biāo);所述消費(fèi)進(jìn)度游標(biāo)包括消費(fèi)者游標(biāo)序號(hào),將確定出的位于所述隊(duì)列體尾部的隊(duì)列元素的數(shù)字序號(hào)作為消費(fèi)者游標(biāo)序號(hào);
當(dāng)所述生產(chǎn)者游標(biāo)序號(hào)與所述消費(fèi)者游標(biāo)序號(hào)之差大于等于安全距離閾值時(shí),調(diào)整所述消費(fèi)者游標(biāo)序號(hào),使所述生產(chǎn)者游標(biāo)序號(hào)與調(diào)整后的消費(fèi)者游標(biāo)序號(hào)之差等于安全距離閾值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
創(chuàng)建隊(duì)列內(nèi)存文件,所述隊(duì)列內(nèi)存文件包括所述數(shù)據(jù)隊(duì)列的所述隊(duì)列體和各所述隊(duì)列元素;
創(chuàng)建游標(biāo)內(nèi)存文件,所述游標(biāo)內(nèi)存文件包括生產(chǎn)進(jìn)度游標(biāo)和消費(fèi)進(jìn)度游標(biāo)。
3.根據(jù)權(quán)利要求1-2任一項(xiàng)所述的方法,其特征在于,所述數(shù)字序號(hào)采用設(shè)定位的二進(jìn)制無(wú)符號(hào)整數(shù)數(shù)值表示。
4.根據(jù)權(quán)利要求1-2任一所述的方法,其特征在于,所述數(shù)據(jù)隊(duì)列還包括隊(duì)列頭和隊(duì)列體,所述隊(duì)列體為隊(duì)列元素序列,所述隊(duì)列元素包括隊(duì)列元素頭和隊(duì)列元素體;
所述隊(duì)列頭包括以下字段:用于標(biāo)識(shí)所述數(shù)據(jù)隊(duì)列格式的版本號(hào)、各所述隊(duì)列元素頭的長(zhǎng)度和各所述隊(duì)列元素體的長(zhǎng)度和所述隊(duì)列體包含隊(duì)列元素的總數(shù)量;
所述隊(duì)列元素頭包括以下字段:所述數(shù)據(jù)隊(duì)列的實(shí)際長(zhǎng)度、表示各所述隊(duì)列元素生成時(shí)間的時(shí)間戳和各所述隊(duì)列元素的數(shù)字序號(hào)。
5.一種向數(shù)據(jù)隊(duì)列寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述數(shù)據(jù)隊(duì)列為根據(jù)上述權(quán)利要求1-4任一項(xiàng)所述的數(shù)據(jù)結(jié)構(gòu)構(gòu)建的方法構(gòu)建的數(shù)據(jù)隊(duì)列;該向數(shù)據(jù)隊(duì)列寫(xiě)入數(shù)據(jù)的方法包括:
對(duì)所述數(shù)據(jù)隊(duì)列進(jìn)行初始化,獲取所述數(shù)據(jù)隊(duì)列的初始內(nèi)存緩沖地址、所述數(shù)據(jù)隊(duì)列的實(shí)際長(zhǎng)度和所述數(shù)據(jù)隊(duì)列的生產(chǎn)進(jìn)度游標(biāo)中的生產(chǎn)者游標(biāo)序號(hào);
根據(jù)所述初始內(nèi)存緩沖地址和所述生產(chǎn)者游標(biāo)序號(hào)獲取待寫(xiě)入數(shù)據(jù)的隊(duì)列元素地址;
將待寫(xiě)入數(shù)據(jù)寫(xiě)入所述隊(duì)列元素地址對(duì)應(yīng)的隊(duì)列元素中;
將寫(xiě)入的所述數(shù)據(jù)的長(zhǎng)度與所述數(shù)據(jù)隊(duì)列的實(shí)際長(zhǎng)度之和作為下一次寫(xiě)入數(shù)據(jù)之前數(shù)據(jù)隊(duì)列的實(shí)際長(zhǎng)度;
將所述生產(chǎn)者游標(biāo)序號(hào)增加設(shè)定值后作為更新后的所述生產(chǎn)者游標(biāo)序號(hào)。
6.根據(jù)權(quán)利要求5所述的向數(shù)據(jù)隊(duì)列寫(xiě)入數(shù)據(jù)的方法,其特征在于,根據(jù)所述初始內(nèi)存緩沖地址和所述生產(chǎn)者游標(biāo)序號(hào)獲取待寫(xiě)入數(shù)據(jù)的隊(duì)列元素地址,包括:
根據(jù)所述生產(chǎn)者游標(biāo)序號(hào)確定待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的偏移地址;
將所述初始內(nèi)存緩沖地址與所述偏移地址之和作為待寫(xiě)入數(shù)據(jù)的隊(duì)列元素地址。
7.根據(jù)權(quán)利要求6所述的向數(shù)據(jù)隊(duì)列寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述根據(jù)所述生產(chǎn)者游標(biāo)序號(hào)確定待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的偏移地址,包括:
根據(jù)所述生產(chǎn)者游標(biāo)序號(hào)和所述數(shù)據(jù)隊(duì)列中的隊(duì)列體包含隊(duì)列元素的總數(shù)量確定待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的索引;
根據(jù)所述數(shù)據(jù)隊(duì)列中隊(duì)列元素的長(zhǎng)度與所述待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的索引的乘積和所述數(shù)據(jù)隊(duì)列中隊(duì)列頭的長(zhǎng)度計(jì)算待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的偏移地址。
8.根據(jù)權(quán)利要求7所述的向數(shù)據(jù)隊(duì)列寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述根據(jù)所述生產(chǎn)者游標(biāo)序號(hào)和所述數(shù)據(jù)隊(duì)列中的隊(duì)列體包含隊(duì)列元素的總數(shù)量確定待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的索引,包括:
將所述生產(chǎn)者游標(biāo)序號(hào)對(duì)所述隊(duì)列體包含的隊(duì)列元素的總數(shù)量進(jìn)行取模運(yùn)算得到的結(jié)果作為所述待寫(xiě)入數(shù)據(jù)的隊(duì)列元素的索引。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京百卓網(wǎng)絡(luò)技術(shù)有限公司,未經(jīng)北京百卓網(wǎng)絡(luò)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910253786.0/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 數(shù)據(jù)結(jié)構(gòu)管理裝置、數(shù)據(jù)結(jié)構(gòu)管理系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)管理方法以及用于記錄數(shù)據(jù)結(jié)構(gòu)管理程序的計(jì)算機(jī)可讀介質(zhì)
- 電子墨水處理
- 一種數(shù)據(jù)結(jié)構(gòu)傳輸方法
- 一種基于元數(shù)據(jù)的任意版本兼容數(shù)據(jù)結(jié)構(gòu)存取方法及裝置
- 基于元模型的數(shù)據(jù)結(jié)構(gòu)建立方法、系統(tǒng)、裝置及存儲(chǔ)介質(zhì)
- XML數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換方法和裝置
- 用于數(shù)據(jù)結(jié)構(gòu)的專(zhuān)用讀取電壓
- 一種實(shí)現(xiàn)無(wú)人機(jī)余度管理數(shù)據(jù)結(jié)構(gòu)的方法及裝置
- 數(shù)據(jù)展示方法及裝置、電子設(shè)備和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)結(jié)構(gòu)樹(shù)校驗(yàn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 構(gòu)建墊、實(shí)體圖像構(gòu)建物和構(gòu)建構(gòu)建物支撐件的方法
- 支持松耦合的軟件構(gòu)建方法、系統(tǒng)及該系統(tǒng)的實(shí)現(xiàn)方法
- 版本的構(gòu)建系統(tǒng)及方法
- 工程構(gòu)建系統(tǒng)及其構(gòu)建方法
- 實(shí)例構(gòu)建方法、裝置及軟件系統(tǒng)
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 天花板地圖構(gòu)建方法、構(gòu)建裝置以及構(gòu)建程序
- 一種項(xiàng)目構(gòu)建方法、持續(xù)集成系統(tǒng)及終端設(shè)備
- 并行構(gòu)建的方法、裝置及設(shè)備
- 構(gòu)建肺癌預(yù)測(cè)模型構(gòu)建方法
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





