[發明專利]切換多線程程序中的對象鎖定模式的方法和系統無效
| 申請號: | 201210500315.3 | 申請日: | 2012-11-29 |
| 公開(公告)號: | CN103853527A | 公開(公告)日: | 2014-06-11 |
| 發明(設計)人: | 韓瑞波;孫彬;劉偉;沙學府 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京市柳沈律師事務所 11105 | 代理人: | 于小寧 |
| 地址: | 美國紐*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 切換 多線程 程序 中的 對象 鎖定 模式 方法 系統 | ||
技術領域
本發明涉及多線程程序中的對象的鎖定,更具體地,涉及一種切換多線程程序中的對象的鎖定模式的方法和系統。
背景技術
隨著計算機硬件技術的發展,已經開發出集成了多個處理器核的多核芯片以及使用這種多核芯片的處理系統,例如計算機等。此外,為了加快程序執行速度,提出了同步多線程(SMT)技術,使得每個處理器核能夠支持多個線程。因此,一個處理系統可以同時運行很多線程。為了充分利用這種處理系統的處理能力,在該處理系統上運行的程序也被多線程化。
當運行多線程程序時,同時存在多個線程,它們根據需要訪問程序中的各種對象,例如函數、語句塊或數據結構等,并且在不使用這些對象時釋放它們。可能出現多個線程同時訪問同一個對象(以下稱為競爭訪問)的情況,從而產生沖突。為了應對對于對象的競爭訪問,可以對該對象應用鎖定機制。
傳統上,按照鎖定的粒度,應用于對象的鎖定機制可以分為粗粒度鎖定模式和細粒度鎖定模式,粗粒度鎖定模式是以例如對象等較粗粒度進行鎖定的模式,細粒度鎖定模式是以例如對象的字段等較細的粒度進行鎖定的模式。按照鎖定的層級,應用于對象的鎖定機制可分為單級鎖定模式和多級鎖定模式,單級鎖定模式是以一個層級進行鎖定的模式,例如僅在對象的層級上進行鎖定的鎖定模式,多級鎖定模式是以多個層級進行鎖定的模式,例如在對象以及對象的字段兩個層級上分別進行鎖定的模式。
下面的代碼段1給出了采用單級鎖定模式的對象(類“MusicRack”)的示例,其中,“Lock?MusicRackLock”定義了針對該對象的鎖(對象級鎖)。
[代碼段1]
下面的代碼段2給出了采用多級鎖定模式的對象(類“MusicRack”)的示例,其中,“ReadWriteLock?MusicRackLock”定義針對該對象的鎖(對象級鎖),“Lock?MusicTrack1Lock”和“Lock?MusicTrack2Lock”分別定義針對該對象的字段“List?MusicTrack1”和“List?MusicTrack2”的鎖(字段級鎖)。
[代碼段2]
不同的鎖定模式會導致不同的性能。單級鎖定模式易于實現,并且具有較短的代碼路徑,因而在競爭訪問較少的環境下能夠使程序具有較快的運行速度,但是由于并行度低,因此在競爭訪問較頻繁的環境下效率較低。反之,多級鎖定模式可以通過降低鎖定級別(減小鎖定范圍)而提高并行度,在競爭訪問較頻繁的環境下可以獲得更快的處理速度,但是由于代碼路徑長,并且可能會出現死鎖問題,因此在競爭訪問較少的環境下效率較低。
傳統上,在編寫多線程程序時設定程序中的對象的鎖定模式,并且在程序運行時根據該鎖定模式來操作。然而,不同的多線程程序在運行時的行為不同,因此需要根據每個程序的實際情況來設計其中的對象的鎖定模式,這使得程序設計工作非常繁瑣;其次,多線程程序在運行時的行為非常難以預測,因此難以在設計時為其中的對象設置最適合的鎖定模式;再次,即使對于同一個多線程程序,其在運行時的行為也是動態改變的,因此在設計時設定的鎖定模式在該程序的不同運行階段可能變得不適用。
發明內容
本發明的一個目的是提供一種能夠切換多線程程序中的對象的鎖定模式的方法和系統,其能夠在程序運行期間自適應地切換程序中的對象的鎖定模式,從而提高程序運行效率和性能。
根據本發明的一個方面,提供了一種切換多線程程序中的對象的鎖定模式的方法,包括:在程序運行期間,獲取與多個線程對該對象的訪問有關的訪問信息,其中,該對象支持單級鎖定模式和多級鎖定模式,單級鎖定模式是能夠鎖定該對象的模式,多級鎖定模式是能夠分別鎖定該對象以及該對象中的字段的模式;以及基于該訪問信息,在單級鎖定模式和多級鎖定模式之間切換該對象的鎖定模式。
根據本發明的另一個方面,提供了一種切換多線程程序中的對象的鎖定模式的系統,包括:訪問監視器,被配置為在程序運行期間,獲取與多個線程對該對象的訪問有關的訪問信息,其中,該對象支持單級鎖定模式和多級鎖定模式,單級鎖定模式是能夠鎖定該對象的模式,多級鎖定模式是能夠分別鎖定該對象以及該對象中的字段的模式;以及鎖定模式控制器,被配置為基于該訪問信息,在單級鎖定模式和多級鎖定模式之間切換該對象的鎖定模式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210500315.3/2.html,轉載請聲明來源鉆瓜專利網。





