[發明專利]一種隊列存取數據的方法、裝置及電子設備在審
| 申請號: | 201810311279.3 | 申請日: | 2018-04-09 |
| 公開(公告)號: | CN110362348A | 公開(公告)日: | 2019-10-22 |
| 發明(設計)人: | 黃浩;張文明;陳少杰 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京品源專利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 430070 湖北省武漢市武漢東湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 原子操作 隊列 裝置及電子設備 讀取指令 隊列存取 寫入指令 線程 隊列數據 寫入數據 入隊 出隊 讀出 寫入 保證 | ||
1.一種隊列存取數據的方法,其特征在于,包括:
接收一個或多個生產者線程的寫入指令,并根據所述寫入指令基于原子操作向當前隊列寫入數據;
接收一個或多個消費者線程的讀取指令,并根據所述讀取指令基于原子操作從當前隊列讀取數據。
2.根據權利要求1所述的方法,其特征在于,所述接收一個或多個生產者線程的寫入指令,并根據所述寫入指令基于原子操作向當前隊列寫入數據,包括:
通過調用寫原子函數獲取當前隊列的入隊位置;
將所述入隊位置增加一,得到下次準備入隊的位置;
通過調用讀原子函數獲取當前隊列的出隊位置;
若所述下次準備入隊的位置與所述出隊位置不相同,則申請用于存儲待寫入數據的內存空間;
將待寫入數據賦值到所述內存空間。
3.根據權利要求2所述的方法,其特征在于,所述接收一個或多個生產者線程的寫入指令,并根據所述寫入指令基于原子操作向當前隊列寫入數據,還包括:
通過調用原子函數更新所述當前隊列的入隊位置,將所述下次準備入隊的位置設置為當前隊列的入隊位置。
4.根據權利要求1所述的方法,其特征在于,所述接收一個或多個消費者線程的讀取指令,并根據所述讀取指令基于原子操作從當前隊列讀取數據,包括:
通過調用讀原子函數獲取當前隊列的出隊位置;
通過調用寫原子函數獲取當前隊列的入隊位置;
若所述入隊位置與所述出隊位置不相同,則將所述出隊位置對應的內存賦值給變量,以將所述出隊位置上的數據讀出隊列。
5.根據權利要求4所述的方法,其特征在于,所述接收一個或多個消費者線程的讀取指令,并根據所述讀取指令基于原子操作從當前隊列讀取數據,還包括:
通過調用原子函數更新所述當前隊列的出隊位置,以確定下次準備出隊的位置。
6.根據權利要求1-5任一項所述的方法,其特征在于,接收一個或多個生產者線程的寫入指令之前,還包括:定義所述當前隊列的類結構,具體為:
在所述當前隊列的隊頭與隊尾分別定義一塊設定字節的內存塊,以保證所述當前隊列對應的內存是一塊對齊的連續內存。
7.根據權利要求2-5中任一項所述的方法,其特征在于,所述入隊位置與所述出隊位置的初始狀態均為所述隊列的隊頭位置。
8.一種隊列存取數據的裝置,其特征在于,所述裝置包括:
寫模塊,用于接收一個或多個生產者線程的寫入指令,并根據所述寫入指令基于原子操作向當前隊列寫入數據;
讀模塊,用于接收一個或多個消費者線程的讀取指令,并根據所述讀取指令基于原子操作從當前隊列讀取數據。
9.一種電子設備,包括第一存儲器、第一處理器及存儲在存儲器上并可在第一處理器上運行的計算機程序,其特征在于,所述第一處理器執行所述計算機程序時實現如權利要求1-7中任一項所述的隊列存取數據的方法。
10.一種包含計算機可執行指令的存儲介質,所述計算機可執行指令在由計算機處理器執行時實現如權利要求1-7中任一項所述的隊列存取數據的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810311279.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種實時優先級多通道處理器及控制方法
- 下一篇:虛擬輸入管理裝置及其管理方法





