[發(fā)明專利]多線程數(shù)據(jù)無鎖處理方法、裝置及電子設(shè)備在審
| 申請(qǐng)?zhí)枺?/td> | 202110341793.3 | 申請(qǐng)日: | 2021-03-30 |
| 公開(公告)號(hào): | CN113051057A | 公開(公告)日: | 2021-06-29 |
| 發(fā)明(設(shè)計(jì))人: | 何全安 | 申請(qǐng)(專利權(quán))人: | 聯(lián)想(北京)有限公司 |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 劉樂 |
| 地址: | 100085 北京市海淀*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 多線程 數(shù)據(jù) 處理 方法 裝置 電子設(shè)備 | ||
本申請(qǐng)?zhí)峁┮环N多線程數(shù)據(jù)無鎖處理方法、裝置及電子設(shè)備,對(duì)于一組生產(chǎn)線程和消費(fèi)線程創(chuàng)建一個(gè)消息隊(duì)列,基于該消息隊(duì)列生產(chǎn)線程/消費(fèi)線程無需等待其它并發(fā)的線程即可快速對(duì)消息隊(duì)列進(jìn)行數(shù)據(jù)緩存/數(shù)據(jù)掃描,只要隊(duì)列未滿/未為空,一次操作即成功。由此可以實(shí)現(xiàn)多線程并發(fā)操作時(shí)的隊(duì)列完全無鎖,減少CPU資源的浪費(fèi),提高系統(tǒng)性能。
技術(shù)領(lǐng)域
本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,更具體地說,涉及一種多線程數(shù)據(jù)無鎖處理方法、裝置及電子設(shè)備。
背景技術(shù)
伴隨著大數(shù)據(jù)的快速增長(zhǎng),需求也變得越來越復(fù)雜而多樣,多線程并發(fā)傳輸、計(jì)算、處理和存儲(chǔ)已經(jīng)成為基本要求。多線程并發(fā)必然會(huì)產(chǎn)生資源競(jìng)爭(zhēng)的問題。
傳統(tǒng)上解決資源競(jìng)爭(zhēng)是使用線程鎖等對(duì)臨界資源進(jìn)行保護(hù),但是線程鎖等會(huì)引起CPU資源搶占等待,造成整個(gè)系統(tǒng)的處理能力下降,從而提升了整個(gè)系統(tǒng)的硬件成本。
發(fā)明內(nèi)容
有鑒于此,為解決上述問題,本申請(qǐng)?zhí)峁┮环N多線程數(shù)據(jù)無鎖處理方法、裝置及電子設(shè)備,技術(shù)方案如下:
本申請(qǐng)一方面提供一種多線程數(shù)據(jù)無鎖處理方法,包括:
創(chuàng)建多個(gè)消息隊(duì)列,每個(gè)消息隊(duì)列對(duì)應(yīng)一組生產(chǎn)線程和消費(fèi)線程;
目標(biāo)生產(chǎn)線程運(yùn)行時(shí),將其數(shù)據(jù)緩存至與其對(duì)應(yīng)的消息隊(duì)列中;
目標(biāo)消費(fèi)線程運(yùn)行時(shí),掃描與其對(duì)應(yīng)的消息隊(duì)列中的數(shù)據(jù)。
優(yōu)選的,所述創(chuàng)建多個(gè)消息隊(duì)列,包括:
獲得線程配置信息,所述線程配置信息中生產(chǎn)線程的數(shù)量n與消費(fèi)線程的數(shù)量m相等或不等,n與m均為大于等于1的整數(shù);
創(chuàng)建矩陣隊(duì)列,所述矩陣隊(duì)列的陣元數(shù)量為n*m,一個(gè)陣元為一個(gè)消息隊(duì)列,一個(gè)生產(chǎn)線程對(duì)應(yīng)i個(gè)消息隊(duì)列,一個(gè)消費(fèi)線程對(duì)應(yīng)j個(gè)消息隊(duì)列,且1≤i≤m、1≤j≤n。
優(yōu)選的,所述掃描與其對(duì)應(yīng)的消息隊(duì)列中的數(shù)據(jù),包括:
獲得與其對(duì)應(yīng)的各消息隊(duì)列的權(quán)重因子,所述權(quán)重因子能夠表征所屬消息隊(duì)列被掃描的優(yōu)先級(jí);
按照權(quán)重因子所表征的優(yōu)先級(jí),依次掃描與其對(duì)應(yīng)的各消息隊(duì)列中的數(shù)據(jù)。
優(yōu)選的,所述獲得與其對(duì)應(yīng)的各消息隊(duì)列的權(quán)重因子,包括:
獲得與其對(duì)應(yīng)的各消息隊(duì)列的屬性信息;
根據(jù)屬性信息計(jì)算所屬消息隊(duì)列的權(quán)重因子。
優(yōu)選的,所述屬性信息包括數(shù)據(jù)量和當(dāng)前距離上次被掃描的掃描時(shí)長(zhǎng),所述數(shù)據(jù)量和所述掃描時(shí)長(zhǎng)均與所述權(quán)重因子成正比。
優(yōu)選的,若n=m,則一個(gè)生產(chǎn)線程唯一對(duì)應(yīng)所述矩陣隊(duì)列中的一個(gè)消息隊(duì)列、一個(gè)消費(fèi)線程唯一對(duì)應(yīng)所述矩陣隊(duì)列中的一個(gè)消息隊(duì)列。
優(yōu)選的,所述消息隊(duì)列中包含數(shù)據(jù)內(nèi)存隊(duì)列和空閑內(nèi)存隊(duì)列,所述空閑內(nèi)存隊(duì)列的內(nèi)存塊是從通用內(nèi)存帶獲得的;
相應(yīng)的,所述將其數(shù)據(jù)緩存至與其對(duì)應(yīng)的消息隊(duì)列中,包括:
針對(duì)與其對(duì)應(yīng)的每個(gè)消息隊(duì)列,從該消息隊(duì)列的空閑內(nèi)存隊(duì)列中獲得第一可用內(nèi)存塊,并將其數(shù)據(jù)寫入所述第一可用內(nèi)存塊后,將所述第一可用內(nèi)存塊掛載至該消息隊(duì)列的數(shù)據(jù)內(nèi)存隊(duì)列中;
相應(yīng)的,所述掃描與其對(duì)應(yīng)的消息隊(duì)列中的數(shù)據(jù),包括:
針對(duì)與其對(duì)應(yīng)的每個(gè)消息隊(duì)列,從該消息隊(duì)列的數(shù)據(jù)內(nèi)存隊(duì)列中獲得第二可用內(nèi)存塊,并對(duì)所述可用內(nèi)存塊掃描結(jié)束后,將釋放內(nèi)存的所述第二可用內(nèi)存塊掛載至該消息隊(duì)列的空閑內(nèi)存隊(duì)列中。
優(yōu)選的,釋放內(nèi)存的方式,包括:
獲得未釋放內(nèi)存的歷史可用內(nèi)存塊和所述第二可用內(nèi)存塊的累計(jì)數(shù)據(jù)量;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于聯(lián)想(北京)有限公司,未經(jīng)聯(lián)想(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110341793.3/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 多線程應(yīng)用系統(tǒng)的異常處理方法和異常處理裝置
- 一種面向片上網(wǎng)絡(luò)的多線程調(diào)度實(shí)現(xiàn)方法
- 基于計(jì)算機(jī)多線程多核顯微鏡細(xì)胞圖像快速掃描處理方法
- 一種基于同步鎖的多線程處理方法、終端以及存儲(chǔ)介質(zhì)
- 多線程并發(fā)處理系統(tǒng)及方法
- 海外控股估值流程控制方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 讀數(shù)方法、電子裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種基于云平臺(tái)多線程調(diào)度的方法、系統(tǒng)、設(shè)備及介質(zhì)
- 一種基于云平臺(tái)的前端多線程調(diào)度方法和系統(tǒng)
- 多線程調(diào)度方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(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ì)





