[發明專利]一種單進程中多線程多互斥量間的控制方法以及終端有效
| 申請號: | 202210571806.0 | 申請日: | 2022-05-25 |
| 公開(公告)號: | CN114661481B | 公開(公告)日: | 2022-09-06 |
| 發明(設計)人: | 宋久才;張常華;朱正輝;趙定金 | 申請(專利權)人: | 廣州市保倫電子有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/52 |
| 代理公司: | 廣州君咨知識產權代理有限公司 44437 | 代理人: | 譚啟斌 |
| 地址: | 510000 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 進程 多線程 多互斥量間 控制 方法 以及 終端 | ||
本發明公開了一種單進程中多線程多互斥量間的控制方法以及終端,該方法包括:S1:獲取線程的個數N,進行排序,記線程為Tn;S2:初始化互斥信號量,對互斥信號量進行排序,記互斥信號量為Am,對前(m?1)個Am進行加鎖;S3:將線程Tn加入到線程池,向線程Tn中傳遞參數i,啟動所有線程;S4:判斷i是否等于1,若是,則對線程T1引入互斥信號量Am,執行線程T1的任務,并對互斥信號量A1解鎖,若否,則對線程Tn引入互斥信號量Am?1,執行線程Tn的任務,并對互斥信號量An解鎖。在本發明中,通過互斥信號量驅使多線程按順序有序進行,更能體現合理公平性的原則。
技術領域
本發明涉及信息處理技術領域,尤其涉及一種單進程中多線程多互斥量間的控制方法以及終端。
背景技術
現代操作系統采用多道程序設計機制,多個進程可以并發執行,每個進程下又包含有多個線程,CPU在線程之間來回切換,共享某些資源,提高了資源的利用率,但這也使得處理并發執行的多個線程之間的沖突和相互制約關系成為了一道難題。如果對并發線程的調度不當,則可能會出現運行結果與切換時間有關的情況,令結果不可再現,影響系統的效率和正確性,嚴重時還會使系統直接崩潰。需要一些機制來控制并發線程間的這種相互制約關系。
如中國專利CN105511969A一種跨進程的線程間進行互斥的方法,包括以下步驟:多個線程競爭互斥信息,勝出的線程初始化互斥信息;當勝出的線程獲得互斥信息之后,利用互斥信息對臨界區進行加鎖操作;進行加鎖操作后,線程獲得互斥信息的鎖,訪問共享資源;同時,其它線程進行等待;線程使用完共享資源之后,離開臨界區,進行解鎖操作;互斥信息繼續被其它線程競爭,重復上述步驟。但該專利仍處在以下問題:第一,多個線程之間的執行順序沒有任何規律,明顯處于不可控的無序狀態;第二,無法用于執行存在明顯因果關系的多個線程,導致線程的處理會異常耗時,且效率極低,容易出現系統死機異常退出等問題。
發明內容
為了克服現有技術的不足,本發明的目的之一在于提供一種單進程中多線程多互斥量間的控制方法,其能解決多個線程之間的執行順序沒有任何規律,明顯處于不可控的無序狀態的問題。
本發明的目的之二在于提供一種單進程中多線程多互斥量間的控制終端,其能解決多個線程之間的執行順序沒有任何規律,明顯處于不可控的無序狀態的問題。
為了達到上述目的之一,本發明所采用的技術方案如下:
一種單進程中多線程多互斥量間的控制方法,包括以下步驟:
S1:獲取進程中的線程的個數N,并根據優先級對線程進行排序,記線程為Tn,其中n為排序中的序號;
S2:初始化N個互斥信號量,對互斥信號量進行排序,記互斥信號量為An,對排序中的前(N-1)個An進行資源加鎖;
S3:將N個線程Tn逐一加入到線程池中,并向每個線程Tn中傳遞參數i,啟動所有線程Tn,其中i=n;
S4:判斷i是否等于1,若是,則執行S5,若否,則執行S6;
S5:對線程T1的內部引入未進行資源加鎖的互斥信號量An,執行完成線程T1的任務,并對互斥信號量A1進行資源解鎖;
S6:對線程Tn的內部引入互斥信號量An-1,執行完成線程Tn的任務,并對互斥信號量An進行資源解鎖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州市保倫電子有限公司,未經廣州市保倫電子有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210571806.0/2.html,轉載請聲明來源鉆瓜專利網。





