两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

切換多線程程序中的對(duì)象鎖定模式的方法和系統(tǒng)的制作方法

文檔序號(hào):6492019閱讀:199來(lái)源:國(guó)知局
切換多線程程序中的對(duì)象鎖定模式的方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種切換多線程程序中的對(duì)象的鎖定模式的方法和系統(tǒng)。該方法包括:在程序運(yùn)行期間,獲取與多個(gè)線程對(duì)該對(duì)象的訪問(wèn)有關(guān)的訪問(wèn)信息,其中,所述對(duì)象支持單級(jí)鎖定模式和多級(jí)鎖定模式,單級(jí)鎖定模式是能夠鎖定該對(duì)象的模式,多級(jí)鎖定模式是能夠分別鎖定該對(duì)象以及該對(duì)象中的字段的模式;以及基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式。由此,可以根據(jù)多線程程序在運(yùn)行期間的狀態(tài)自適應(yīng)地調(diào)整程序中的對(duì)象的鎖定模式,簡(jiǎn)化了開(kāi)發(fā)者的程序設(shè)計(jì)工作,并且能夠提高多線程程序的性能。
【專(zhuān)利說(shuō)明】切換多線程程序中的對(duì)象鎖定模式的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多線程程序中的對(duì)象的鎖定,更具體地,涉及一種切換多線程程序中的對(duì)象的鎖定模式的方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)硬件技術(shù)的發(fā)展,已經(jīng)開(kāi)發(fā)出集成了多個(gè)處理器核的多核芯片以及使用這種多核芯片的處理系統(tǒng),例如計(jì)算機(jī)等。此外,為了加快程序執(zhí)行速度,提出了同步多線程(SMT)技術(shù),使得每個(gè)處理器核能夠支持多個(gè)線程。因此,一個(gè)處理系統(tǒng)可以同時(shí)運(yùn)行很多線程。為了充分利用這種處理系統(tǒng)的處理能力,在該處理系統(tǒng)上運(yùn)行的程序也被多線程化。
[0003]當(dāng)運(yùn)行多線程程序時(shí),同時(shí)存在多個(gè)線程,它們根據(jù)需要訪問(wèn)程序中的各種對(duì)象,例如函數(shù)、語(yǔ)句塊或數(shù)據(jù)結(jié)構(gòu)等,并且在不使用這些對(duì)象時(shí)釋放它們。可能出現(xiàn)多個(gè)線程同時(shí)訪問(wèn)同一個(gè)對(duì)象(以下稱(chēng)為競(jìng)爭(zhēng)訪問(wèn))的情況,從而產(chǎn)生沖突。為了應(yīng)對(duì)對(duì)于對(duì)象的競(jìng)爭(zhēng)訪問(wèn),可以對(duì)該對(duì)象應(yīng)用鎖定機(jī)制。
[0004]傳統(tǒng)上,按照鎖定的粒度,應(yīng)用于對(duì)象的鎖定機(jī)制可以分為粗粒度鎖定模式和細(xì)粒度鎖定模式,粗粒度鎖定模式是以例如對(duì)象等較粗粒度進(jìn)行鎖定的模式,細(xì)粒度鎖定模式是以例如對(duì)象的字段等較細(xì)的粒度進(jìn)行鎖定的模式。按照鎖定的層級(jí),應(yīng)用于對(duì)象的鎖定機(jī)制可分為單級(jí)鎖定模式和多級(jí)鎖定模式,單級(jí)鎖定模式是以一個(gè)層級(jí)進(jìn)行鎖定的模式,例如僅在對(duì)象的層級(jí)上進(jìn)行鎖定的鎖定模式,多級(jí)鎖定模式是以多個(gè)層級(jí)進(jìn)行鎖定的模式,例如在對(duì)象以及對(duì)象的字段兩個(gè)層級(jí)上分別進(jìn)行鎖定的模式。
[0005]下面的代碼段I給出了采用單級(jí)鎖定模式的對(duì)象(類(lèi)“MusicRack”)的示例,其中,“Lock MusicRackLock”定義了針對(duì)該對(duì)象的鎖(對(duì)象級(jí)鎖)。
`[0006][代碼段I]
[0007]

Class MusicRack{

Lock MusicRackLock;

int MusicCount; List topSelection;...[0008]


List MusicTrackl;


List MusicTrack2;...}
[0009] 下面的代碼段2給出了采用多級(jí)鎖定模式的對(duì)象(類(lèi)“MusicRack”)的示例,其中,“ReadWriteLock MusicRackLock”定義針對(duì)該對(duì)象的鎖(對(duì)象級(jí)鎖),“LockMusicTracklLock” 和 “Lock MusicTrack2Lock” 分別定義針對(duì)該對(duì)象的字段 “ListMusicTrackl” 和 “List MusicTrack2” 的鎖(字段級(jí)鎖)。[0010][代碼段2]
[0011]
【權(quán)利要求】
1.一種切換多線程程序中的對(duì)象的鎖定模式的方法,包括: 在程序運(yùn)行期間,獲取與多個(gè)線程對(duì)該對(duì)象的訪問(wèn)有關(guān)的訪問(wèn)信息,其中,該對(duì)象支持單級(jí)鎖定模式和多級(jí)鎖定模式,單級(jí)鎖定模式是能夠鎖定該對(duì)象的模式,多級(jí)鎖定模式是能夠分別鎖定該對(duì)象以及該對(duì)象中的字段的模式;以及 基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式。
2.如權(quán)利要求1所述的方法,其中,所述對(duì)象是在多線程程序中預(yù)先標(biāo)注的對(duì)象。
3.如權(quán)利要求1所述的方法,其中,通過(guò)修改所述對(duì)象的代碼來(lái)使得所述對(duì)象支持單級(jí)鎖定模式和多級(jí)鎖定模式。
4.如權(quán)利要求3所述的方法,其中,修改后的對(duì)象的代碼包括:針對(duì)該對(duì)象的鎖的定義和針對(duì)該對(duì)象的字段的鎖的定義;以及用于表示對(duì)象的當(dāng)前鎖定狀態(tài)的鎖定狀態(tài)參數(shù)。
5.如權(quán)利要求4所述的方法,其中,所述訪問(wèn)信息包括所述多個(gè)線程對(duì)于該對(duì)象的總訪問(wèn)次數(shù)、所述多個(gè)線程對(duì)于該對(duì)象的競(jìng)爭(zhēng)訪問(wèn)次數(shù)、以及所述多個(gè)線程的總等待時(shí)間,所述總等待時(shí)間是請(qǐng)求訪問(wèn)該對(duì)象的各個(gè)線程從由于對(duì)象被鎖定而開(kāi)始等待時(shí)起到獲得該對(duì)象的訪問(wèn)權(quán)為止的等待時(shí)間的總和。
6.如權(quán)利要求5所述的方法,其中,基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式的步驟包括: 計(jì)算該對(duì)象的競(jìng)爭(zhēng)率和平均等待時(shí)間,所述競(jìng)爭(zhēng)率為競(jìng)爭(zhēng)訪問(wèn)次數(shù)與總訪問(wèn)次數(shù)之比,所述平均等待時(shí)間為總等待時(shí)間與競(jìng)爭(zhēng)訪問(wèn)次數(shù)之比,以及 在對(duì)象處于單級(jí)鎖 定模式,并且競(jìng)爭(zhēng)率超過(guò)第一比率閾值且平均等待時(shí)間超過(guò)第一時(shí)間閾值的情況下,將對(duì)象的鎖定模式切換為多級(jí)鎖定模式。
7.如權(quán)利要求6所述的方法,其中,將對(duì)象的鎖定模式切換為多級(jí)鎖定模式的步驟包括: 獲取該對(duì)象的與訪問(wèn)權(quán); 激活針對(duì)該對(duì)象的字段的鎖; 將所述鎖定狀態(tài)參數(shù)修改為表示多級(jí)鎖定模式的值;以及 釋放該對(duì)象的寫(xiě)訪問(wèn)權(quán)。
8.如權(quán)利要求5所述的方法,其中,基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式的步驟還包括: 計(jì)算該對(duì)象的競(jìng)爭(zhēng)率和平均等待時(shí)間,所述競(jìng)爭(zhēng)率為競(jìng)爭(zhēng)訪問(wèn)次數(shù)與總訪問(wèn)次數(shù)之比,所述平均等待時(shí)間為總等待時(shí)間與競(jìng)爭(zhēng)訪問(wèn)次數(shù)之比,以及 在對(duì)象處于多級(jí)鎖定模式的情況下,并且競(jìng)爭(zhēng)率低于第二比率閾值且平均等待時(shí)間低于第二時(shí)間閾值時(shí),將對(duì)象的鎖定模式切換為單級(jí)鎖定模式。
9.如權(quán)利要求8所述的方法,其中,將對(duì)象的鎖定模式切換為單級(jí)鎖定模式的步驟包括: 獲取該對(duì)象的與訪問(wèn)權(quán); 撤銷(xiāo)針對(duì)該對(duì)象的字段的鎖; 將所述鎖定狀態(tài)參數(shù)修改為表示單級(jí)鎖定模式的值;以及 釋放該對(duì)象的寫(xiě)訪問(wèn)權(quán)。
10.如權(quán)利要求1所述的方法,其中,周期性地或者響應(yīng)于預(yù)定事件的發(fā)生,而執(zhí)行基于該訪問(wèn)信息在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式的步驟。
11.一種切換多線程程序中的對(duì)象的鎖定模式的系統(tǒng),包括: 訪問(wèn)監(jiān)視器,被配置為在程序運(yùn)行期間,獲取與多個(gè)線程對(duì)該對(duì)象的訪問(wèn)有關(guān)的訪問(wèn)信息,其中,所述對(duì)象支持單級(jí)鎖定模式和多級(jí)鎖定模式,單級(jí)鎖定模式是能夠鎖定該對(duì)象的模式,多級(jí)鎖定模式是能夠分別鎖定該對(duì)象以及該對(duì)象中的字段的模式;以及 鎖定模式控制器,被配置為基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式。
12.如權(quán)利要求11所述的系統(tǒng),其中,所述對(duì)象是在多線程程序中預(yù)先標(biāo)注的對(duì)象。
13.如權(quán)利要求11所述的系統(tǒng),其中,通過(guò)修改所述對(duì)象的代碼來(lái)使得所述對(duì)象支持單級(jí)鎖定模式和多級(jí)鎖定模式。
14.如權(quán)利要求13所述的系統(tǒng),其中,修改后的對(duì)象的代碼包括:針對(duì)該對(duì)象的鎖的定義和針對(duì)該對(duì)象的字段的鎖的定義;以及用于表示對(duì)象的當(dāng)前鎖定狀態(tài)的鎖定狀態(tài)參數(shù)。
15.如權(quán)利要求14所述的系統(tǒng),其中,所述訪問(wèn)信息包括所述多個(gè)線程對(duì)于該對(duì)象的總訪問(wèn)次數(shù)、所述多個(gè)線程對(duì)于該對(duì)象的競(jìng)爭(zhēng)訪問(wèn)次數(shù)、以及所述多個(gè)線程的總等待時(shí)間,所述總等待時(shí)間是請(qǐng)求訪問(wèn)該對(duì)象的各個(gè)線程從由于對(duì)象被鎖定而開(kāi)始等待時(shí)起到獲得該對(duì)象的訪問(wèn)權(quán)為止的等待時(shí)間的總和。
16.如權(quán)利要求15所述的系統(tǒng),其中,鎖定模式控制器被配置為通過(guò)以下方式來(lái)基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式: 計(jì)算該對(duì)象的競(jìng)爭(zhēng)率和·平均等待時(shí)間,所述競(jìng)爭(zhēng)率為競(jìng)爭(zhēng)訪問(wèn)次數(shù)與總訪問(wèn)次數(shù)之比,所述平均等待時(shí)間為總等待時(shí)間與競(jìng)爭(zhēng)訪問(wèn)次數(shù)之比,以及 在對(duì)象處于單級(jí)鎖定模式,并且競(jìng)爭(zhēng)率超過(guò)第一比率閾值且平均等待時(shí)間超過(guò)第一時(shí)間閾值的情況下,將對(duì)象的鎖定模式切換為多級(jí)鎖定模式。
17.如權(quán)利要求16所述的系統(tǒng),其中,鎖定模式控制器被配置為通過(guò)以下方式將對(duì)象的鎖定模式切換為多級(jí)鎖定模式包括: 獲取該對(duì)象的與訪問(wèn)權(quán); 激活針對(duì)該對(duì)象的字段的鎖; 將所述鎖定狀態(tài)參數(shù)修改為表示多級(jí)鎖定模式的值;以及 釋放該對(duì)象的寫(xiě)訪問(wèn)權(quán)。
18.如權(quán)利要求15所述的系統(tǒng),鎖定模式控制器被配置為通過(guò)以下方式來(lái)基于該訪問(wèn)信息,在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定模式: 計(jì)算該對(duì)象的競(jìng)爭(zhēng)率和平均等待時(shí)間,所述競(jìng)爭(zhēng)率為競(jìng)爭(zhēng)訪問(wèn)次數(shù)與總訪問(wèn)次數(shù)之比,所述平均等待時(shí)間為總等待時(shí)間與競(jìng)爭(zhēng)訪問(wèn)次數(shù)之比,以及 在對(duì)象處于多級(jí)鎖定模式,并且競(jìng)爭(zhēng)率低于第二比率閾值且平均等待時(shí)間低于第二時(shí)間閾值的情況下,將對(duì)象的鎖定模式切換為單級(jí)鎖定模式。
19.如權(quán)利要求18所述的系統(tǒng),其中,鎖定模式控制器被配置為通過(guò)以下方式將對(duì)象的鎖定模式切換為單級(jí)鎖定模式包括: 獲取該對(duì)象的與訪問(wèn)權(quán); 撤銷(xiāo)針對(duì)該對(duì)象的字段的鎖; 將所述鎖定狀態(tài)參數(shù)修改為表示單級(jí)鎖定模式的值;以及釋放該對(duì)象的寫(xiě)訪問(wèn)權(quán)。
20.如權(quán)利要求11所述的系統(tǒng),其中,鎖定模式控制器被配置為周期性地或者響應(yīng)于預(yù)定事件的發(fā)生,而基于該訪問(wèn)信息在單級(jí)鎖定模式和多級(jí)鎖定模式之間切換該對(duì)象的鎖定 模式。
【文檔編號(hào)】G06F9/38GK103853527SQ201210500315
【公開(kāi)日】2014年6月11日 申請(qǐng)日期:2012年11月29日 優(yōu)先權(quán)日:2012年11月29日
【發(fā)明者】韓瑞波, 孫彬, 劉偉, 沙學(xué)府 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
仁化县| 大荔县| 舒兰市| 武义县| 皮山县| 揭西县| 西乌珠穆沁旗| 永平县| 南康市| 嵊州市| 温宿县| 敖汉旗| 泗水县| 江陵县| 庄浪县| 旌德县| 武清区| 松原市| 双流县| 桦甸市| 邢台县| 兴山县| 霍邱县| 高陵县| 福海县| 长白| 囊谦县| 邢台市| 茌平县| 长寿区| 易门县| 茂名市| 蒙阴县| 会昌县| 新建县| 松潘县| 兴宁市| 宝清县| 布拖县| 泸溪县| 海安县|