亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于鎖的線程管理方法及裝置與流程

文檔序號:11917859閱讀:247來源:國知局
一種基于鎖的線程管理方法及裝置與流程

本發(fā)明涉及領(lǐng)域,尤其涉及一種基于鎖的線程管理方法及裝置。



背景技術(shù):

Java服務(wù)器程序一般要提供高并發(fā)的服務(wù)能力,多線程使得服務(wù)的并發(fā)量大大提升。為了解決資源訪問沖突的問題,鎖是一種很普遍使用的技術(shù),即多個線程同時訪問一個資源時,由于某些資源存在特殊性,一次只能被一個線程訪問,比如:要對文件進(jìn)行寫入操作,如果多個線程同時寫入會造成文件內(nèi)容混亂的問題。因此,要對文件進(jìn)行寫操作,必須設(shè)定一把鎖,只有獲取到鎖的線程才能對文件進(jìn)行寫入?,F(xiàn)實情況中,有很多地方都需要用到鎖。

現(xiàn)在Java中鎖是比較成熟的技術(shù)點,但即便如此,在實際的使用過程中,還是很容易出現(xiàn)問題,比如某個線程一直占用著某個資源,一直不釋放,其它線程會一直等待阻塞。由于客戶端的請求不斷產(chǎn)生,線程也會相應(yīng)增加,如果資源一直得不到釋放,很快服務(wù)端會產(chǎn)生大量的線程,從而使得服務(wù)器的資源耗盡,失去服務(wù)能力。



技術(shù)實現(xiàn)要素:

為解決上述技術(shù)問題,本發(fā)明提供一種基于鎖的線程管理方法及裝置,能夠?qū)︽i資源進(jìn)行監(jiān)控,可以避免出現(xiàn)因持續(xù)執(zhí)行鎖行為監(jiān)控導(dǎo)致的過量占用系統(tǒng)處理資源的問題。

本發(fā)明提供的技術(shù)方案如下:

本發(fā)明公開了一種基于鎖的線程管理方法,包括步驟:S100、當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;S200、根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;若是,重復(fù)執(zhí)行步驟S200;否則執(zhí)行下一步;S300、接受所述獲取鎖請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源。

進(jìn)一步優(yōu)選的,所述步驟S100之前還包括步驟:S010、設(shè)置所述預(yù)設(shè)閾值;所述預(yù)設(shè)閾值為用戶設(shè)置的最大的鎖資源數(shù)量;S020、設(shè)置預(yù)設(shè)時長;所述預(yù)設(shè)時長為用戶設(shè)置的最長的鎖資源被占用的時間。

本發(fā)明還公開另一種基于鎖的線程管理方法,包括步驟:S100、當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;S200、根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;若是,重復(fù)執(zhí)行步驟S200;否則執(zhí)行下一步;S300、接受所述獲取鎖請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源;S400、監(jiān)控已分配的鎖資源的狀態(tài);S500、判斷已分配的鎖資源被占用的時間是否超過所述預(yù)設(shè)時長;若是,則強(qiáng)制釋放鎖資源。

進(jìn)一步優(yōu)選的,還包括步驟:S600、當(dāng)有鎖資源釋放時,更新所述已分配鎖資源數(shù)量信息。

本發(fā)明還公開一種基于鎖的線程管理裝置,包括:獲取模塊,用于當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;數(shù)量判斷模塊,用于根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;分配模塊,用于當(dāng)已分配的鎖資源數(shù)量大于預(yù)設(shè)閾值時,接受所述獲取鎖資源請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源。

進(jìn)一步優(yōu)選的,還包括:設(shè)置模塊,用于設(shè)置所述預(yù)設(shè)閾值;以及設(shè)置預(yù)設(shè)時長;所述預(yù)設(shè)閾值為用戶設(shè)置的最大的鎖資源數(shù)量;所述預(yù)設(shè)時長為用戶設(shè)置的最長的鎖資源被占用的時間。

本發(fā)明還公開一種基于鎖的線程管理裝置,包括:獲取模塊,用于當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;數(shù)量判斷模塊,用于根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;分配模塊,用于當(dāng)已分配的鎖資源數(shù)量大于預(yù)設(shè)閾值時,接受所述獲取鎖資源請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源;監(jiān)控模塊,用于監(jiān)控已分配的鎖資源的狀態(tài);時長判斷模塊,用于判斷已分配的鎖資源被占用的時間是否超過所述預(yù)設(shè)時長;釋放模塊,用于當(dāng)判斷已分配的鎖資源被占用的時間超過所述預(yù)設(shè)時長時,強(qiáng)制釋放鎖資源。

進(jìn)一步優(yōu)選的,還包括:更新模塊,用于當(dāng)有鎖資源釋放時,更新所述已分配鎖資源數(shù)量信息。

與現(xiàn)有技術(shù)相比,本發(fā)明中所有的線程鎖采用工廠模式獲取,由一個對象統(tǒng)一分配鎖資源,這樣公共分配了多少鎖,每個鎖消耗了多長時間都可以被監(jiān)控。本發(fā)明對已分配的鎖數(shù)量設(shè)置預(yù)設(shè)閾值,如果監(jiān)控到當(dāng)前已分配的鎖的數(shù)量達(dá)到了預(yù)設(shè)閾值,則不再接受新的請求,可以避免出現(xiàn)因持續(xù)執(zhí)行鎖行為監(jiān)控導(dǎo)致的過量占用系統(tǒng)處理資源的問題,同時,當(dāng)某個線程占用鎖資源的時間達(dá)到預(yù)設(shè)時長時,本發(fā)明會強(qiáng)制釋放該鎖資源,減少鎖資源的浪費(fèi),為系統(tǒng)合理安排資源。

附圖說明

下面將以明確易懂的方式,結(jié)合附圖說明優(yōu)選實施方式,對本發(fā)明予以進(jìn)一步說明。

圖1為本發(fā)明一種基于鎖的線程管理方法的主要步驟示意圖;

圖2為本發(fā)明一種基于鎖的線程管理方法的另一個具體實施例的步驟示意圖;

圖3為本發(fā)明一種基于鎖的線程管理方法的流程圖;

圖4為本發(fā)明一種基于鎖的線程管理裝置的主要組成示意圖;

圖5為本發(fā)明一種基于鎖的線程管理裝置的完整組成示意圖。

附圖標(biāo)號說明:

10、獲取模塊,20、數(shù)量判斷模塊,30、分配模塊,40、設(shè)置模塊,50、監(jiān)控模塊,60、時長判斷模塊,70、釋放模塊,80、更新模塊。

具體實施方式

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對照附圖說明本發(fā)明的具體實施方式。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實施方式。

為使圖面簡潔,各圖中只示意性地表示出了與本發(fā)明相關(guān)的部分,它們并不代表其作為產(chǎn)品的實際結(jié)構(gòu)。另外,以使圖面簡潔便于理解,在有些圖中具有相同結(jié)構(gòu)或功能的部件,僅示意性地繪示了其中的一個,或僅標(biāo)出了其中的一個。在本文中,“一個”不僅表示“僅此一個”,也可以表示“多于一個”的情形。

圖1為本發(fā)明一種基于鎖的線程管理方法的主要步驟示意圖,如圖1所示,一種基于鎖的線程管理方法,包括步驟:S100、當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;S200、根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;若是,重復(fù)執(zhí)行步驟S200;否則執(zhí)行下一步;S300、接受所述獲取鎖請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源。

本發(fā)明中所有的線程鎖采用工廠模式獲取,由一個對象統(tǒng)一分配鎖資源,這樣公共分配了多少鎖,每個鎖消耗了多長時間都可以被監(jiān)控。本發(fā)明對已分配的鎖數(shù)量設(shè)置預(yù)設(shè)閾值,如果監(jiān)控到當(dāng)前已分配的鎖的數(shù)量達(dá)到了預(yù)設(shè)閾值,則不再接受新的請求,可以避免出現(xiàn)因持續(xù)執(zhí)行鎖行為監(jiān)控導(dǎo)致的過量占用系統(tǒng)處理資源的問題。

優(yōu)選的,所述步驟S100之前還包括步驟:S010、設(shè)置所述預(yù)設(shè)閾值;所述預(yù)設(shè)閾值為用戶設(shè)置的最大的鎖資源數(shù)量;S020、設(shè)置預(yù)設(shè)時長;所述預(yù)設(shè)時長為用戶設(shè)置的最長的鎖資源被占用的時間。

具體的,圖2為本發(fā)明一種基于鎖的線程管理方法的另一個具體實施例的步驟示意圖。如圖2所示,另一種基于鎖的線程管理方法,包括步驟:S100、當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;S200、根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;若是,重復(fù)執(zhí)行步驟S200;否則執(zhí)行下一步;S300、接受所述獲取鎖請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源;S400、監(jiān)控已分配的鎖資源的狀態(tài);S500、判斷已分配的鎖資源被占用的時間是否超過所述預(yù)設(shè)時長;若是,則強(qiáng)制釋放鎖資源。

優(yōu)選的,還包括步驟:S600、當(dāng)有鎖資源釋放時,更新所述已分配鎖資源數(shù)量信息。

圖3為本發(fā)明一種基于鎖的線程管理方法的流程圖。如圖3所示,本發(fā)明的工作流程具體如下:

300、開始。

310、用戶設(shè)置預(yù)設(shè)閾值和預(yù)設(shè)時長。

320、接收獲取鎖資源請求。

330、根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;若是,重復(fù)執(zhí)行步驟330;否則,執(zhí)行下一步。

340、接受所述獲取鎖請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源。

350、監(jiān)控已分配的鎖資源的狀態(tài)。

360、判斷已分配的鎖資源被占用的時間是否超過所述預(yù)設(shè)時長;若是,執(zhí)行步驟370;否則,執(zhí)行步驟380。

370、強(qiáng)制釋放鎖資源,返回執(zhí)行步驟320。

380、結(jié)束。

圖4為本發(fā)明一種基于鎖的線程管理裝置的主要組成示意圖。如圖4所示,一種基于鎖的線程管理裝置,包括:獲取模塊10,用于當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;數(shù)量判斷模塊20,用于根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;分配模塊30,用于當(dāng)已分配的鎖資源數(shù)量大于預(yù)設(shè)閾值時,接受所述獲取鎖資源請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源。

本發(fā)明中所有的線程鎖采用工廠模式獲取,由一個對象統(tǒng)一分配鎖資源,這樣公共分配了多少鎖,每個鎖消耗了多長時間都可以被監(jiān)控。本發(fā)明對已分配的鎖數(shù)量設(shè)置預(yù)設(shè)閾值,如果監(jiān)控到當(dāng)前已分配的鎖的數(shù)量達(dá)到了預(yù)設(shè)閾值,則不再接受新的請求,可以避免出現(xiàn)因持續(xù)執(zhí)行鎖行為監(jiān)控導(dǎo)致的過量占用系統(tǒng)處理資源的問題。

優(yōu)選的,還包括:設(shè)置模塊40,用于設(shè)置所述預(yù)設(shè)閾值;以及設(shè)置預(yù)設(shè)時長;所述預(yù)設(shè)閾值為用戶設(shè)置的最大的鎖資源數(shù)量;所述預(yù)設(shè)時長為用戶設(shè)置的最長的鎖資源被占用的時間。

圖5為本發(fā)明一種基于鎖的線程管理裝置的完整組成示意圖。如圖5所示,一種基于鎖的線程管理裝置,包括:獲取模塊10,用于當(dāng)接收到獲取鎖資源請求時,獲取已分配鎖資源數(shù)量信息;數(shù)量判斷模塊20,用于根據(jù)所述已分配鎖資源數(shù)量信息判斷已分配的鎖資源數(shù)量是否大于預(yù)設(shè)閾值;分配模塊30,用于當(dāng)已分配的鎖資源數(shù)量大于預(yù)設(shè)閾值時,接受所述獲取鎖資源請求,為發(fā)起獲取鎖資源請求的線程分配鎖資源;監(jiān)控模塊50,用于監(jiān)控已分配的鎖資源的狀態(tài);時長判斷模塊60,用于判斷已分配的鎖資源被占用的時間是否超過所述預(yù)設(shè)時長;釋放模塊70,用于當(dāng)判斷已分配的鎖資源被占用的時間超過所述預(yù)設(shè)時長時,強(qiáng)制釋放鎖資源。

具體的,如果監(jiān)控到當(dāng)前已分配的鎖子資源被線程占用的時間達(dá)到預(yù)設(shè)時長,則強(qiáng)制該線程釋放該鎖資源,減少鎖資源的浪費(fèi),為系統(tǒng)合理安排資源。

優(yōu)選的,還包括:更新模塊80,用于當(dāng)有鎖資源釋放時,更新所述已分配鎖資源數(shù)量信息。

需要說明的是,本裝置中各模塊之間的信息交互、執(zhí)行過程等內(nèi)容與上述方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。

應(yīng)當(dāng)說明的是,上述實施例均可根據(jù)需要自由組合。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1