一種計(jì)算機(jī)資源監(jiān)控方法
【專(zhuān)利摘要】本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及計(jì)算機(jī)資源管理方法。計(jì)算機(jī)資源監(jiān)控方法,包括:A、線(xiàn)程T1第一次使用資源R1,鎖L處于解鎖狀態(tài),T1獲取鎖L,將鎖L的ref1由0增加為1,為R1加鎖;B、T1第二次使用R1,增加ref1為2;C、線(xiàn)程T2第一次使用R1之時(shí),鎖L已被T1使用,T2等待;D、T1第二次使用R1結(jié)束,減少ref1為1;E、T1第一次使用R1結(jié)束,減少ref1為0,釋放鎖L;F、T2獲取鎖L,第一次使用R1,將鎖Lref2由0增加為1,為R1加鎖;G、T2第二次使用R1,增加ref2為2;H、T2第二次使用R1結(jié)束,減少ref2為1;I、T2第一次使用R1結(jié)束,減少ref2為0,釋放鎖L。利用本發(fā)明可以確保計(jì)算機(jī)資源被某線(xiàn)程的獨(dú)占使用,避免資源沖突導(dǎo)致的死鎖現(xiàn)象發(fā)生。
【專(zhuān)利說(shuō)明】一種計(jì)算機(jī)資源監(jiān)控方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及計(jì)算機(jī)資源管理方法。
【背景技術(shù)】
[0002] 進(jìn)行數(shù)據(jù)操作時(shí)需要使用計(jì)算機(jī)某一資源,在此次過(guò)程中不允許此資源也被其它 操作所使用。這通常是通過(guò)設(shè)置臨界區(qū)或全局變量來(lái)控制的,其不足是無(wú)法根本解決多重 調(diào)用,多線(xiàn)程調(diào)用,以及隨之產(chǎn)生的死鎖問(wèn)題。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是:提供一種計(jì)算機(jī)資源監(jiān)控方法,有效解決資源沖突使用問(wèn)題。
[0004] 本發(fā)明的技術(shù)方案是:一種計(jì)算機(jī)資源監(jiān)控方法,包括以下步驟:
[0005] A、在線(xiàn)程T1第一次使用資源R1之前,先嘗試獲取鎖L,若此時(shí)鎖L處于解鎖狀態(tài), 則線(xiàn)程T1獲取鎖L成功,將鎖L的引用計(jì)數(shù)ref 1由0增加為1,為資源R1加鎖;
[0006] B、在線(xiàn)程T1第二次使用資源R1之前,先判斷鎖L的引用計(jì)數(shù)ref 1,此時(shí)鎖L的引 用計(jì)數(shù)refl為1,增加鎖L的引用計(jì)數(shù)refl為2,無(wú)需為資源R1重復(fù)加鎖;
[0007] C、在線(xiàn)程T2第一次使用資源R1之前,先嘗試獲取鎖L,此時(shí)鎖L已被線(xiàn)程T1使 用,線(xiàn)程T2獲取鎖L失敗,等待線(xiàn)程T1釋放鎖L ;
[0008] D、在線(xiàn)程T1第二次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)refl為1,保持資源 R1加鎖狀態(tài);
[0009] E、在線(xiàn)程T1第一次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)refl為0,釋放鎖L 使其處于解鎖狀態(tài);
[0010] F、在線(xiàn)程T2獲取鎖L成功,第一次使用資源R1時(shí),將鎖L的引用計(jì)數(shù)ref2由0 增加為1,為資源R1加鎖;
[0011] G、在線(xiàn)程T2第二次使用資源R1時(shí),先判斷鎖L的引用計(jì)數(shù)ref2,此時(shí)鎖L的引用 計(jì)數(shù)ref2為1,增加鎖L的引用計(jì)數(shù)ref2為2,無(wú)需為資源R1重復(fù)加鎖;
[0012] H、在線(xiàn)程T2第二次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)ref2為1,保持為資 源R1加鎖狀態(tài);
[0013] I、在線(xiàn)程T2第一次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)ref2為0,釋放鎖L 使其處于解鎖狀態(tài)。
[0014] 利用本發(fā)明可以確保計(jì)算機(jī)資源被某線(xiàn)程的獨(dú)占使用以及即時(shí)釋放,避免資源沖 突導(dǎo)致的死鎖現(xiàn)象發(fā)生。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0015] 附圖1為本發(fā)明中單一線(xiàn)程使用資源監(jiān)控流程示意圖;
[0016] 附圖2為本發(fā)明中多線(xiàn)程使用資源監(jiān)控流程示意圖。
【具體實(shí)施方式】
[0017] 參見(jiàn)附圖1、2,一種計(jì)算機(jī)資源監(jiān)控方法,包括以下步驟:
[0018] A、在線(xiàn)程T1第一次使用資源R1之前,先嘗試獲取鎖L,若此時(shí)鎖L處于解鎖狀態(tài), 則線(xiàn)程T1獲取鎖L成功,將鎖L的引用計(jì)數(shù)ref 1由0增加為1,為資源R1加鎖;
[0019] B、在線(xiàn)程T1第二次使用資源R1之前,先判斷鎖L的引用計(jì)數(shù)refl,此時(shí)鎖L的引 用計(jì)數(shù)refl為1,增加鎖L的引用計(jì)數(shù)refl為2,無(wú)需為資源R1重復(fù)加鎖;
[0020] C、在線(xiàn)程T2第一次使用資源R1之前,先嘗試獲取鎖L,此時(shí)鎖L已被線(xiàn)程T1使 用,線(xiàn)程T2獲取鎖L失敗,等待線(xiàn)程T1釋放鎖L ;
[0021] D、在線(xiàn)程T1第二次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)refl為1,保持資源 R1加鎖狀態(tài);
[0022] E、在線(xiàn)程T1第一次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)refl為0,釋放鎖L 使其處于解鎖狀態(tài);
[0023] F、在線(xiàn)程T2獲取鎖L成功,第一次使用資源R1時(shí),將鎖L的引用計(jì)數(shù)ref2由0 增加為1,為資源R1加鎖;
[0024] G、在線(xiàn)程T2第二次使用資源R1時(shí),先判斷鎖L的引用計(jì)數(shù)ref2,此時(shí)鎖L的引用 計(jì)數(shù)ref2為1,增加鎖L的引用計(jì)數(shù)ref2為2,無(wú)需為資源R1重復(fù)加鎖;
[0025] H、在線(xiàn)程T2第二次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)ref2為1,保持為資 源R1加鎖狀態(tài);
[0026] I、在線(xiàn)程T2第一次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)ref2為0,釋放鎖L 使其處于解鎖狀態(tài)。
【權(quán)利要求】
1. 一種計(jì)算機(jī)資源監(jiān)控方法,包括以下步驟: A、 在線(xiàn)程T1第一次使用資源R1之前,先嘗試獲取鎖L,若此時(shí)鎖L處于解鎖狀態(tài),則線(xiàn) 程T1獲取鎖L成功,將鎖L的引用計(jì)數(shù)refl由0增加為1,為資源R1加鎖; B、 在線(xiàn)程T1第二次使用資源R1之前,先判斷鎖L的引用計(jì)數(shù)ref 1,此時(shí)鎖L的引用計(jì) 數(shù)refl為1,增加鎖L的引用計(jì)數(shù)refl為2,無(wú)需為資源R1重復(fù)加鎖; C、 在線(xiàn)程T2第一次使用資源R1之前,先嘗試獲取鎖L,此時(shí)鎖L已被線(xiàn)程T1使用,線(xiàn) 程T2獲取鎖L失敗,等待線(xiàn)程T1釋放鎖L ; D、 在線(xiàn)程T1第二次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)refl為1,保持資源R1 加鎖狀態(tài); E、 在線(xiàn)程T1第一次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)refl為0,釋放鎖L使其 處于解鎖狀態(tài); F、 在線(xiàn)程T2獲取鎖L成功,第一次使用資源R1時(shí),將鎖L的引用計(jì)數(shù)ref2由0增加 為1,為資源R1加鎖; G、 在線(xiàn)程T2第二次使用資源R1時(shí),先判斷鎖L的引用計(jì)數(shù)ref2,此時(shí)鎖L的引用計(jì)數(shù) ref2為1,增加鎖L的引用計(jì)數(shù)ref2為2,無(wú)需為資源R1重復(fù)加鎖; H、 在線(xiàn)程T2第二次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)ref2為1,保持為資源 R1加鎖狀態(tài); I、 在線(xiàn)程T2第一次使用資源R1結(jié)束時(shí),減少鎖L的引用計(jì)數(shù)ref2為0,釋放鎖L使其 處于解鎖狀態(tài)。
【文檔編號(hào)】G06F9/50GK104123193SQ201410383858
【公開(kāi)日】2014年10月29日 申請(qǐng)日期:2014年8月7日 優(yōu)先權(quán)日:2014年8月7日
【發(fā)明者】肖龍旭, 張凱, 丁凱, 陳炫, 孫其峰 申請(qǐng)人:肖龍旭, 北京凱銳立德科技有限公司