[發明專利]一種多線程同步并發的方法及系統在審
| 申請號: | 202010885489.0 | 申請日: | 2020-08-28 |
| 公開(公告)號: | CN112130973A | 公開(公告)日: | 2020-12-25 |
| 發明(設計)人: | 張志永 | 申請(專利權)人: | 北京思特奇信息技術股份有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 北京匯信合知識產權代理有限公司 11335 | 代理人: | 林聰源 |
| 地址: | 100086 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 多線程 同步 并發 方法 系統 | ||
本發明公開了一種多線程同步并發的方法及系統,包括:生成多個初級鎖和一個終極鎖,所述初級鎖與終極鎖形成兩級鎖機制;根據所述初級鎖的數量對并發線程進行分組;各分組內的各線程申請對應初級鎖,其中一個線程獲得到初級鎖;各分組內獲得到初級鎖的線程申請終極鎖,其中一個線程獲得到終極鎖;獲得到終極鎖的線程進入工作。本發明結合了互斥鎖與信號量的優點,在多線程高并發時保證每個申請鎖的線程機會均等以及提高了線程的并發能力。
技術領域
本發明涉及多線程處理技術領域,具體涉及一種多線程同步并發的方法及系統。
背景技術
在多線程并發時,為了實現多線程間的同步,需要用到鎖技術,常用的鎖技術有自旋鎖、互斥鎖、信號量。
常用的鎖技術存在的缺點為:
自旋鎖對CPU耗費較高。
互斥鎖可以解決線程間同步問題,但互斥鎖在多線程高并發時無法保證在每個申請鎖的線程機會均等,會出現某個線程持續等待鎖的現象。
信號量可以保證線程獲取鎖的順序,即優先申請鎖的線程會優先獲取鎖,但在高并發時會導致并發性能急劇下降。
發明內容
針對現有技術中存在的上述問題,本發明提供一種多線程同步并發的方法及系統。
本發明公開了一種多線程同步并發的方法,包括:
生成多個初級鎖和一個終極鎖,所述初級鎖與終極鎖形成兩級鎖機制;
根據所述初級鎖的數量對并發線程進行分組;
各分組內的各線程申請對應初級鎖,其中一個線程獲得到初級鎖;
各分組內獲得到初級鎖的線程申請終極鎖,其中一個線程獲得到終極鎖;
獲得到終極鎖的線程進入工作。
作為本發明的進一步改進,所述并發線程的數量大于所述初級鎖的數量。
作為本發明的進一步改進,所述根據所述初級鎖的數量對并發線程進行分組,包括:
獲得初級鎖數量;
根據并發線程的線程號對初級鎖數量進行取模得到鎖號;
同一鎖號的線程為一組。
本發明還公開了一種多線程同步并發的系統,包括:
生成模塊,用于生成多個初級鎖和一個終極鎖,所述初級鎖與終極鎖形成兩級鎖機制;
分組模塊,用于根據所述初級鎖的數量對并發線程進行分組;
初級加鎖模塊,用于各分組內的各線程申請對應初級鎖,其中一個線程獲得到初級鎖;
終極加鎖模塊,用于各分組內獲得到初級鎖的線程申請終極鎖,其中一個線程獲得到終極鎖,獲得到終極鎖的線程進入工作。
作為本發明的進一步改進,所述并發線程的數量大于所述初級鎖的數量。
作為本發明的進一步改進,所述根據所述初級鎖的數量對并發線程進行分組,包括:
獲得初級鎖數量;
根據并發線程的線程號對初級鎖數量進行取模得到鎖號;
同一鎖號的線程為一組。
與現有技術相比,本發明的有益效果為:
本發明結合了互斥鎖與信號量的優點,在多線程高并發時保證每個申請鎖的線程機會均等以及提高了線程的并發能力。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京思特奇信息技術股份有限公司,未經北京思特奇信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010885489.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種高效篩分裝置
- 下一篇:一種遠程跨區水體監控裝置





