[發明專利]一種基于正副本切換的多線程數據無鎖讀寫方法在審
| 申請號: | 201811628744.2 | 申請日: | 2018-12-28 |
| 公開(公告)號: | CN109783243A | 公開(公告)日: | 2019-05-21 |
| 發明(設計)人: | 劉慰慰;楊昆;閻星娥;嚴榮明;張林;魏紅道;江汀;張炎;陸啟浩;王超 | 申請(專利權)人: | 南京華飛數據技術有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/48;G06F9/50 |
| 代理公司: | 南京品智知識產權代理事務所(普通合伙) 32310 | 代理人: | 奚曉寧;楊陳慶 |
| 地址: | 210000 江蘇省南京市建鄴*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存數據 讀寫 副本模塊 多線程 寫操作 無鎖 副本保留 工作線程 計算機技術領域 數據寫入內存 程序初始化 工作模塊 讀操作 一次性 拷貝 更新 | ||
本發明一種基于正副本切換的多線程數據無鎖讀寫方法涉及計算機技術領域,特別是一種多線程數據無鎖讀寫的方法。包括內存數據正本模塊、內存數據副本模塊、內存數據副本保留模塊、寫操作和正副本切換模塊、以及工作模塊。讀寫方法包括1)在程序初始化階段,先一次性將現有數據寫入內存數據正本模塊,并拷貝一份至內存數據副本模塊;2)后續建立進行讀操作、寫操作和正副本切換操作的工作線程;3)具體進行寫操作和正副本切換操作的工作線程,并更新內存數據副本模塊和內存數據副本保留模塊。
技術領域
本發明一種基于正副本切換的多線程數據無鎖讀寫方法涉及計算機技術領域,特別是一種多線程數據無鎖讀寫的方法。
背景技術
為了提高系統/程序的并發處理效率,人們往往會采用多線程的方法。相比于單線程的處理程序,多線程處理程序能夠將程序中相互獨立的不同事件交給不同的線程進行處理,多個事件并發執行,節省了時間開銷,極大地提高程序的性能。但多線程不可避免的會存在競爭關系,例如多個線程需要對同一內存塊進行讀寫訪問。如果不能對競爭同一內存塊的多線程進行有效控制,內存數據被多個線程毫無規則的進行修改,則會造成內存塊中數據異常,乃至一些不可預知的錯誤。
針對多線程的資源競爭問題,一般采取線程鎖的辦法。使用線程鎖,能夠有效地控制同一時間段內對內存進行讀寫的線程。當某個線程對內存資源進行操作時,對該資源上鎖,表示已經被占用。防止其他線程此時對內存進行修改。
線程鎖能夠有效合理的控制多線程的資源競爭,使程序能夠符合預期的執行任務。但是線程鎖的上鎖和解鎖會造成一部分時間開銷,并且隨著競爭資源的線程數量、對競爭資源的訪問頻率增加時,上鎖的頻率,次數也會線性上漲。這樣線程鎖本身的時間開銷會越來越大。
發明內容
本發明的目的是針對上述不足之處提供一種基于正副本切換的多線程數據無鎖讀寫方法,能夠解決對內存的競爭問題,通過無鎖的方法讀寫某一塊內存數據,在保證程序的正確性的同時,利用多線程的特性提高程序的性能;因為該方法是無鎖的,所以不會因為線程數量、訪問頻率的增加而增加額外的時間開銷。
本發明是采取以下技術方案實現的:
一種基于正副本切換的多線程數據無鎖讀寫系統,包括內存數據正本模塊、內存數據副本模塊、內存數據副本保留模塊、寫操作和正副本切換模塊、以及工作模塊。
內存數據正本模塊,又稱待讀寫內存數據的正本指針模塊,簡稱正本指針,用于在該模塊內進行待讀寫內存數據所有的增加、刪除和修改的操作。
內存數據副本模塊,又稱內存數據的副本指針模塊,簡稱副本指針,用于在該模塊內進行內存數據的所有讀取操作。
內存數據副本保留模塊,又稱內存數據副本的保留指針模塊,簡稱保留指針,用于臨時存放當前副本的指針,并保留一個正副本切換周期。
寫操作和正副本切換模塊包括寫操作子模塊和正副本切換子模塊,寫操作子模塊用于負責在內存數據正本模塊中按上述方法進行數據的增加、修改或刪除操作;正副本切換子模塊用于負責每隔一個周期將正本、副本和保留的數據進行更新同步。
工作模塊即一般的工作線程,負責從內存數據副本模塊中取出數據進行具體的業務邏輯功能實現。
一種基于正副本切換的多線程數據無鎖讀寫方法,包括如下步驟,
1)在程序初始化階段,先一次性將現有數據寫入內存數據正本模塊,并拷貝一份至內存數據副本模塊;
2)后續建立進行讀操作、寫操作和正副本切換操作的工作線程;其中寫操作和正副本切換操作安排在相同且唯一的工作線程當中,循環執行;寫操作和正副本切換操作,這兩個操作按先后順序執行,保證寫操作和正副本切換操作無需加鎖;讀操作則安排在多個工作線程中循環執行,由于讀操作實際是指針賦值,屬于原子操作,無須進行加鎖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京華飛數據技術有限公司,未經南京華飛數據技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811628744.2/2.html,轉載請聲明來源鉆瓜專利網。





