欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

線程管理方法及裝置與流程

文檔序號(hào):11154394閱讀:240來源:國知局
線程管理方法及裝置與制造工藝

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



背景技術(shù):

目前,針對產(chǎn)品檢測的任務(wù)線程分配技術(shù)中,通常都是來一個(gè)檢測任務(wù)就新建一條檢測線程,同時(shí)現(xiàn)有技術(shù)中,對于先開啟的檢測線程即使已經(jīng)完成了檢測任務(wù),該檢測線程也仍然處于開啟狀態(tài)。因此,如果同時(shí)產(chǎn)生的新檢測任務(wù)過多且依然采用新建檢測線程來分配處理的話,那么將會(huì)導(dǎo)致后臺(tái)資源被大量占用,進(jìn)而嚴(yán)重影響產(chǎn)品檢測的效率。



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

本發(fā)明的主要目的在于提供一種線程管理方法及裝置,旨在解決現(xiàn)有技術(shù)中無限次的新建并分配檢測線程,進(jìn)而導(dǎo)致后臺(tái)資源被大量占用而嚴(yán)重影響產(chǎn)品檢測效率的技術(shù)問題。

為實(shí)現(xiàn)上述目的,本發(fā)明提供一種線程管理方法,應(yīng)用于產(chǎn)品檢測,所述線程管理方法包括:

步驟S1、監(jiān)測當(dāng)前是否存在空閑的線程以及新的產(chǎn)品檢測任務(wù);

步驟S2、若當(dāng)前存在空閑的線程且不存在新的產(chǎn)品檢測任務(wù),則休眠該空閑的線程;

步驟S3、若當(dāng)前不存在空閑的線程且存在新的產(chǎn)品檢測任務(wù),則判斷當(dāng)前是否存在休眠的線程;

步驟S4、若當(dāng)前存在休眠的線程,則喚醒當(dāng)前休眠的線程,并將喚醒的線程分配給該新的產(chǎn)品檢測任務(wù);

步驟S5、執(zhí)行步驟S1直至產(chǎn)品檢測停止時(shí)退出。

優(yōu)選地,所述監(jiān)測當(dāng)前是否存在空閑的線程以及新的產(chǎn)品檢測任務(wù)之后包括:

若當(dāng)前存在空閑的線程且存在新的產(chǎn)品檢測任務(wù),則將該空閑的線程分配給該新的產(chǎn)品檢測任務(wù)。

優(yōu)選地,所述監(jiān)測當(dāng)前是否存在空閑的線程以及新的產(chǎn)品檢測任務(wù)之前包括:

建立固定數(shù)量的用于執(zhí)行產(chǎn)品檢測任務(wù)的線程。

優(yōu)選地,所述若當(dāng)前不存在空閑的線程且存在新的產(chǎn)品檢測任務(wù),則判斷當(dāng)前是否存在休眠的線程之后包括:

若當(dāng)前不存在休眠的線程,則將當(dāng)前新的產(chǎn)品檢測任務(wù)緩存至預(yù)設(shè)任務(wù)隊(duì)列中。

優(yōu)選地,所述若當(dāng)前不存在休眠的線程,則將當(dāng)前新的產(chǎn)品檢測任務(wù)緩存至預(yù)設(shè)任務(wù)隊(duì)列中之后包括:

監(jiān)測當(dāng)前是否存在已執(zhí)行完產(chǎn)品檢測任務(wù)的線程;

若存在,則從所述任務(wù)隊(duì)列中取出產(chǎn)品檢測任務(wù),并將該線程分配給該取出的產(chǎn)品檢測任務(wù)。

為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種線程管理裝置,應(yīng)用于產(chǎn)品檢測,所述線程管理裝置包括:

監(jiān)測模塊,用于監(jiān)測當(dāng)前是否存在空閑的線程以及新的產(chǎn)品檢測任務(wù);

休眠模塊,用于在當(dāng)前存在空閑的線程且不存在新的產(chǎn)品檢測任務(wù)時(shí),休眠該空閑的線程;

判斷模塊,用于在當(dāng)前不存在空閑的線程且存在新的產(chǎn)品檢測任務(wù)時(shí),判斷當(dāng)前是否存在休眠的線程;

喚醒模塊,用于在當(dāng)前存在休眠的線程時(shí),喚醒當(dāng)前休眠的線程;

分配模塊,用于將喚醒的線程分配給該新的產(chǎn)品檢測任務(wù)。

優(yōu)選地,所述分配模塊還用于:

在當(dāng)前存在空閑的線程且存在新的產(chǎn)品檢測任務(wù)時(shí),將該空閑的線程分配給該新的產(chǎn)品檢測任務(wù)。

優(yōu)選地,所述線程管理裝置還包括:

線程模塊,用于建立固定數(shù)量的用于執(zhí)行產(chǎn)品檢測任務(wù)的線程。

優(yōu)選地,所述線程管理裝置還包括:

緩存模塊,用于在當(dāng)前不存在休眠的線程時(shí),將當(dāng)前新的產(chǎn)品檢測任務(wù)緩存至預(yù)設(shè)任務(wù)隊(duì)列中。

優(yōu)選地,所述監(jiān)測模塊還用于:監(jiān)測當(dāng)前是否存在已執(zhí)行完產(chǎn)品檢測任務(wù)的線程;

所述分配模塊還用于:在當(dāng)前存在已執(zhí)行完產(chǎn)品檢測任務(wù)的線程時(shí),從所述任務(wù)隊(duì)列中取出產(chǎn)品檢測任務(wù),并將該線程分配給該取出的產(chǎn)品檢測任務(wù)。

本發(fā)明中,當(dāng)產(chǎn)品檢測任務(wù)較少時(shí),休眠空閑的線程。而當(dāng)產(chǎn)品檢測任務(wù)較多時(shí),若不存在空閑的線程而存在休眠的線程,則將之前休眠的線程喚醒并分配給當(dāng)前的檢測任務(wù),進(jìn)而可對線程的分配進(jìn)行干預(yù)以防止線程的無限增加而導(dǎo)致后臺(tái)資源被大量占用致使產(chǎn)品檢測速度下降,從而相對提升了產(chǎn)品檢測的速度與效率。

附圖說明

圖1為本發(fā)明線程管理方法一實(shí)施例的流程示意圖;

圖2為本發(fā)明線程管理裝置第一實(shí)施例的功能模塊示意圖;

圖3為本發(fā)明線程管理裝置第二實(shí)施例的功能模塊示意圖;

圖4為本發(fā)明線程管理裝置第三實(shí)施例的功能模塊示意圖。

本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。

具體實(shí)施方式

應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

參照圖1,圖1為本發(fā)明線程管理方法一實(shí)施例的流程示意圖。本實(shí)施例中,線程管理方法包括:

步驟S10,監(jiān)測當(dāng)前是否存在空閑的線程以及新的產(chǎn)品檢測任務(wù);

本實(shí)施例中,對于監(jiān)測方式,既可以是實(shí)時(shí)監(jiān)測,也可以是每隔預(yù)設(shè)時(shí)長進(jìn)行一次監(jiān)測,同時(shí)對于預(yù)設(shè)時(shí)長的設(shè)置不限,比如每隔1分鐘、10分鐘等。本實(shí)施例中,線程具體用于執(zhí)行產(chǎn)品檢測任務(wù)。

本實(shí)施例中,空閑的線程具體是指沒有執(zhí)行產(chǎn)品檢測任務(wù)的線程,比如從一開始就沒有執(zhí)行產(chǎn)品檢測任務(wù)的線程,或者在執(zhí)行完產(chǎn)品檢測任務(wù)后處于待分配狀態(tài)的線程。此外,本實(shí)施例中對于檢測空閑的線程的方式不限,比如根據(jù)線程的運(yùn)行狀態(tài)進(jìn)行確定等。

本實(shí)施例中,產(chǎn)品檢測任務(wù)具體是指對產(chǎn)品進(jìn)行檢測的工作任務(wù),其中,產(chǎn)品檢測任務(wù)既可以是針對整個(gè)產(chǎn)品檢測而言的,也可以是只針對產(chǎn)品的某個(gè)檢測環(huán)節(jié)而言的。同時(shí),對于產(chǎn)品檢測任務(wù)的具體內(nèi)容及形式不限,比如為指令、為程序包等。此外,本實(shí)施例中對于監(jiān)測產(chǎn)品檢測任務(wù)的監(jiān)測形式不限,比如監(jiān)測是否存在任務(wù)指令。

步驟S20,若當(dāng)前存在空閑的線程且不存在新的產(chǎn)品檢測任務(wù),則休眠該空閑的線程;

本實(shí)施例中,當(dāng)檢測到空閑的線程時(shí),由于當(dāng)前不存在產(chǎn)品檢測任務(wù),因此,無需分配該空閑的檢測線程,同時(shí)為避免線程開啟而占用后臺(tái)資源,因此,本實(shí)施例中,在不存在產(chǎn)品檢測任務(wù)時(shí),對空閑的線程進(jìn)行休眠處理。本實(shí)施例中對于休眠線程的方式不限,具體根據(jù)實(shí)際需要進(jìn)行設(shè)置。需要說明的是,休眠的線程可以在滿足條件時(shí)而被喚醒。

步驟S30,若當(dāng)前不存在空閑的線程且存在新的產(chǎn)品檢測任務(wù),則判斷當(dāng)前是否存在休眠的線程;

步驟S40,若當(dāng)前存在休眠的線程,則喚醒當(dāng)前休眠的線程,并將喚醒的線程分配給該新的產(chǎn)品檢測任務(wù);

本實(shí)施例中,當(dāng)監(jiān)測到新的產(chǎn)品檢測任務(wù)時(shí)并不建立新的線程來執(zhí)行該產(chǎn)品檢測任務(wù),而是進(jìn)一步確定是否存在空閑的線程以及休眠的線程,如果當(dāng)前不存在空閑的線程而存在休眠的線程,則可以喚醒處于休眠狀態(tài)的線程,并將該喚醒后的線程分配給該新的產(chǎn)品檢測任務(wù),進(jìn)而避免重新新建線程而對后臺(tái)資源的占用,同時(shí),在線程數(shù)量一定的情況下,既保證了后臺(tái)資源的高效利用,同時(shí)也提升了線程的使用效率。

例如,有A、B、C、D四個(gè)線程,其中,在間隔時(shí)間點(diǎn)T處檢測到線程A處于空閑狀態(tài),而線程B、C、D處于執(zhí)行產(chǎn)品檢測任務(wù)的工作狀態(tài),則休眠線程A,同時(shí)在線程A處于休眠期間,監(jiān)測是否存在新的產(chǎn)品檢測任務(wù)以及新的空閑線程(比如B、C、D任一個(gè)或多個(gè)),如果監(jiān)測到新的產(chǎn)品檢測任務(wù),但同時(shí)不存在空閑的線程(也即B、C、D仍然處于工作狀態(tài)),則將線程A喚醒,并將線程A分配給當(dāng)前新的產(chǎn)品檢測任務(wù)。

步驟S50,若當(dāng)前存在空閑的線程且存在新的產(chǎn)品檢測任務(wù),則將該空閑的線程分配給該新的產(chǎn)品檢測任務(wù)。

例如,在線程A處于休眠期間且未達(dá)到下一間隔時(shí)間點(diǎn)時(shí),監(jiān)測到新的產(chǎn)品檢測任務(wù),同時(shí),存在空閑的線程B,則直接將線程B分配給該新的產(chǎn)品檢測任務(wù)而無需喚醒線程A,進(jìn)而進(jìn)一步降低對后臺(tái)資源的占用。

步驟S60,執(zhí)行步驟S10直至產(chǎn)品檢測停止時(shí)退出。

本實(shí)施例中,當(dāng)產(chǎn)品檢測任務(wù)較少時(shí),休眠空閑的線程。而當(dāng)產(chǎn)品檢測任務(wù)較多時(shí),若不存在空閑的線程而存在休眠的線程,則將之前休眠的線程喚醒并分配給當(dāng)前的檢測任務(wù),進(jìn)而可對線程的分配進(jìn)行干預(yù)以防止線程的無限增加而導(dǎo)致后臺(tái)資源被大量占用致使產(chǎn)品檢測速度下降,從而相對提升了產(chǎn)品檢測的速度與效率。

進(jìn)一步可選的,在本發(fā)明線程管理方法一實(shí)施例中,在上述步驟S10之前進(jìn)一步包括:建立固定數(shù)量的用于執(zhí)行產(chǎn)品檢測任務(wù)的線程。

本實(shí)施例中,在開始進(jìn)行產(chǎn)品檢測之前,預(yù)先建立固定數(shù)量的檢測線程,同時(shí)所有線程都處于可分配狀態(tài)。比如預(yù)先建立20條檢測線程,同時(shí)開始每隔預(yù)設(shè)時(shí)長進(jìn)行空閑線程的檢測,例如,在間隔時(shí)長內(nèi)若不存在空閑線程,則不進(jìn)行休眠處理,而在間隔時(shí)長內(nèi)若存在空閑的線程時(shí),則休眠該空閑的線程。

本實(shí)施例中,通過預(yù)先建立固定數(shù)量的檢測線程,從而避免線程無限次新建而導(dǎo)致后臺(tái)資源被嚴(yán)重占用后使得產(chǎn)品檢測速度下降的問題。

進(jìn)一步可選的,在本發(fā)明線程管理方法一實(shí)施例中,上述步驟S30之后包括:若當(dāng)前不存在休眠的線程,則將當(dāng)前新的產(chǎn)品檢測任務(wù)緩存至預(yù)設(shè)任務(wù)隊(duì)列中。

本實(shí)施例中,若當(dāng)前正在執(zhí)行產(chǎn)品檢測任務(wù)的檢測線程的總數(shù)達(dá)到預(yù)設(shè)建立的線程的固定數(shù)量,也即當(dāng)前不存在空閑的線程以及休眠的線程時(shí),此時(shí)若新建線程,則可能導(dǎo)致后臺(tái)資源被大量占用而降低產(chǎn)品檢測速度,因此,通過預(yù)先建立的任務(wù)隊(duì)列來緩存當(dāng)前產(chǎn)生的新的產(chǎn)品檢測任務(wù)。需要說明的是,本實(shí)施例中對于任務(wù)隊(duì)列的數(shù)據(jù)結(jié)構(gòu)形式不限,比如單向鏈表結(jié)構(gòu)、雙向鏈表結(jié)構(gòu)等。

例如,在進(jìn)行產(chǎn)品檢測之前,預(yù)先建立多個(gè)線程,比如預(yù)先建立20條檢測線程,則每產(chǎn)生一條產(chǎn)品檢測任務(wù)則對應(yīng)分配一條線程,而若當(dāng)前已建立的線程已經(jīng)分配完畢,則將當(dāng)前產(chǎn)生的新的產(chǎn)品檢測任務(wù)緩存至任務(wù)隊(duì)列中,從而等待線程空閑時(shí)再行分配。

本實(shí)施例中,通過預(yù)先建立固定數(shù)量的線程,從而避免線程無限次新建而導(dǎo)致后臺(tái)資源被嚴(yán)重占用后使得產(chǎn)品檢測速度下降的問題,同時(shí),在固定數(shù)量的線程被全部占用時(shí),通過任務(wù)隊(duì)列以緩存其他新的產(chǎn)品檢測任務(wù),進(jìn)而在減少產(chǎn)品檢測任務(wù)處理量的同時(shí),相對提升產(chǎn)品的檢測速度。

進(jìn)一步可選的,在本發(fā)明線程管理方法另一實(shí)施例中,將當(dāng)前新的產(chǎn)品檢測任務(wù)緩存至預(yù)設(shè)任務(wù)隊(duì)列中之后進(jìn)一步包括:

監(jiān)測當(dāng)前是否存在已執(zhí)行完產(chǎn)品檢測任務(wù)的線程;

若存在,則從任務(wù)隊(duì)列中取出產(chǎn)品檢測任務(wù),并將該線程分配給該取出的產(chǎn)品檢測任務(wù),其中,當(dāng)任務(wù)隊(duì)列為空時(shí)返回執(zhí)行步驟S10。

本實(shí)施例中,在任務(wù)隊(duì)列中緩存產(chǎn)品檢測任務(wù)的同時(shí),監(jiān)測當(dāng)前已分配的線程中是否存在已執(zhí)行完產(chǎn)品檢測任務(wù)的空閑線程,如果存在空閑的線程,也即存在可分配的線程時(shí),從任務(wù)隊(duì)列中取出產(chǎn)品檢測任務(wù),并將該空閑的檢測線程分配給該取出的產(chǎn)品檢測任務(wù)。

例如,預(yù)先建立了A、B、C、D四條線程,如果該四條線程都依次被分配了產(chǎn)品檢測任務(wù),則當(dāng)檢測到新的產(chǎn)品檢測任務(wù)時(shí),將產(chǎn)品檢測任務(wù)緩存到任務(wù)隊(duì)列中,同時(shí)監(jiān)測A、B、C、D四條線程是否已執(zhí)行完產(chǎn)品檢測任務(wù),假設(shè)A線程執(zhí)行完了檢測任務(wù),則可將任務(wù)隊(duì)列的隊(duì)首所對應(yīng)的產(chǎn)品檢測任務(wù)取出,并將A線程分配給該取出的產(chǎn)品檢測任務(wù),從而無需再次新建新的檢測任務(wù),進(jìn)而防止檢測線程的無限增加而導(dǎo)致后臺(tái)資源被大量占用致使產(chǎn)品檢測速度下降,從而相對提升了產(chǎn)品檢測的速度與效率。

參照圖2,圖2為本發(fā)明線程管理裝置第一實(shí)施例的功能模塊示意圖。本實(shí)施例中,線程管理裝置包括:

監(jiān)測模塊10,用于監(jiān)測當(dāng)前是否存在空閑的線程以及新的產(chǎn)品檢測任務(wù);

本實(shí)施例中,對于監(jiān)測方式,既可以是實(shí)時(shí)監(jiān)測,也可以是每隔預(yù)設(shè)時(shí)長進(jìn)行一次監(jiān)測,同時(shí)對于預(yù)設(shè)時(shí)長的設(shè)置不限,比如每隔1分鐘、10分鐘等。本實(shí)施例中,線程具體用于執(zhí)行產(chǎn)品檢測任務(wù)。

本實(shí)施例中,空閑的線程具體是指沒有執(zhí)行產(chǎn)品檢測任務(wù)的線程,比如從一開始就沒有執(zhí)行產(chǎn)品檢測任務(wù)的線程,或者在執(zhí)行完產(chǎn)品檢測任務(wù)后處于待分配狀態(tài)的線程。此外,本實(shí)施例中對于檢測空閑的線程的方式不限,比如根據(jù)線程的運(yùn)行狀態(tài)進(jìn)行確定等。

本實(shí)施例中,產(chǎn)品檢測任務(wù)具體是指對產(chǎn)品進(jìn)行檢測的工作任務(wù),其中,產(chǎn)品檢測任務(wù)既可以是針對整個(gè)產(chǎn)品檢測而言的,也可以是只針對產(chǎn)品的某個(gè)檢測環(huán)節(jié)而言的。同時(shí),對于產(chǎn)品檢測任務(wù)的具體內(nèi)容及形式不限,比如為指令、為程序包等。此外,本實(shí)施例中對于監(jiān)測產(chǎn)品檢測任務(wù)的監(jiān)測形式不限,比如監(jiān)測是否存在任務(wù)指令。

休眠模塊20,用于在當(dāng)前存在空閑的線程且不存在新的產(chǎn)品檢測任務(wù)時(shí),休眠該空閑的線程;

本實(shí)施例中,當(dāng)檢測到空閑的線程時(shí),由于當(dāng)前不存在產(chǎn)品檢測任務(wù),因此,無需分配該空閑的檢測線程,同時(shí)為避免線程開啟而占用后臺(tái)資源,因此,本實(shí)施例中,在不存在產(chǎn)品檢測任務(wù)時(shí),對空閑的線程進(jìn)行休眠處理。本實(shí)施例中對于休眠線程的方式不限,具體根據(jù)實(shí)際需要進(jìn)行設(shè)置。需要說明的是,休眠的線程可以在滿足條件時(shí)而被喚醒。

判斷模塊30,用于在當(dāng)前不存在空閑的線程且存在新的產(chǎn)品檢測任務(wù)時(shí),判斷當(dāng)前是否存在休眠的線程;

喚醒模塊40,用于在當(dāng)前存在休眠的線程時(shí),喚醒當(dāng)前休眠的線程;

分配模塊50,用于將喚醒的線程分配給該新的產(chǎn)品檢測任務(wù)。

本實(shí)施例中,當(dāng)監(jiān)測到新的產(chǎn)品檢測任務(wù)時(shí)并不建立新的線程來執(zhí)行該產(chǎn)品檢測任務(wù),而是進(jìn)一步確定是否存在空閑的線程以及休眠的線程,如果當(dāng)前不存在空閑的線程而存在休眠的線程,則可以喚醒處于休眠狀態(tài)的線程,并將該喚醒后的線程分配給該新的產(chǎn)品檢測任務(wù),進(jìn)而避免重新新建線程而對后臺(tái)資源的占用,同時(shí),在線程數(shù)量一定的情況下,既保證了后臺(tái)資源的高效利用,同時(shí)也提升了線程的使用效率。

例如,有A、B、C、D四個(gè)線程,其中,在間隔時(shí)間點(diǎn)T處檢測到線程A處于空閑狀態(tài),而線程B、C、D處于執(zhí)行產(chǎn)品檢測任務(wù)的工作狀態(tài),則休眠線程A,同時(shí)在線程A處于休眠期間,監(jiān)測是否存在新的產(chǎn)品檢測任務(wù)以及新的空閑線程(比如B、C、D任一個(gè)或多個(gè)),如果監(jiān)測到新的產(chǎn)品檢測任務(wù),但同時(shí)不存在空閑的線程(也即B、C、D仍然處于工作狀態(tài)),則將線程A喚醒,并將線程A分配給當(dāng)前新的產(chǎn)品檢測任務(wù)。

可選的,在本發(fā)明線程管理裝置一實(shí)施例中,分配模塊50具體還用于:若當(dāng)前存在空閑的線程且存在新的產(chǎn)品檢測任務(wù),則將該空閑的線程分配給該新的產(chǎn)品檢測任務(wù)。例如,在線程A處于休眠期間且未達(dá)到下一間隔時(shí)間點(diǎn)時(shí),監(jiān)測到新的產(chǎn)品檢測任務(wù),同時(shí),存在空閑的線程B,則直接將線程B分配給該新的產(chǎn)品檢測任務(wù)而無需喚醒線程A,進(jìn)而進(jìn)一步降低對后臺(tái)資源的占用。

本實(shí)施例中,當(dāng)產(chǎn)品檢測任務(wù)較少時(shí),休眠空閑的線程。而當(dāng)產(chǎn)品檢測任務(wù)較多時(shí),若不存在空閑的線程而存在休眠的線程,則將之前休眠的線程喚醒并分配給當(dāng)前的檢測任務(wù),進(jìn)而可對線程的分配進(jìn)行干預(yù)以防止線程的無限增加而導(dǎo)致后臺(tái)資源被大量占用致使產(chǎn)品檢測速度下降,從而相對提升了產(chǎn)品檢測的速度與效率。

參照圖3,圖3為本發(fā)明線程管理裝置第二實(shí)施例的功能模塊示意圖。本實(shí)施例中,線程管理裝置進(jìn)一步還包括:

線程模塊60,用于建立固定數(shù)量的用于執(zhí)行產(chǎn)品檢測任務(wù)的線程。

本實(shí)施例中,在開始進(jìn)行產(chǎn)品檢測之前,預(yù)先建立固定數(shù)量的檢測線程,同時(shí)所有線程都處于可分配狀態(tài)。比如預(yù)先建立20條檢測線程,同時(shí)開始每隔預(yù)設(shè)時(shí)長進(jìn)行空閑線程的檢測,例如,在間隔時(shí)長內(nèi)若不存在空閑線程,則不進(jìn)行休眠處理,而在間隔時(shí)長內(nèi)若存在空閑的線程時(shí),則休眠該空閑的線程。

本實(shí)施例中,通過預(yù)先建立固定數(shù)量的檢測線程,從而避免線程無限次新建而導(dǎo)致后臺(tái)資源被嚴(yán)重占用后使得產(chǎn)品檢測速度下降的問題。

參照圖4,圖4為本發(fā)明線程管理裝置第三實(shí)施例的功能模塊示意圖。本實(shí)施例中,線程管理裝置進(jìn)一步還包括:

緩存模塊70,用于在當(dāng)前不存在休眠的線程時(shí),將當(dāng)前新的產(chǎn)品檢測任務(wù)緩存至預(yù)設(shè)任務(wù)隊(duì)列中。

本實(shí)施例中,若當(dāng)前正在執(zhí)行產(chǎn)品檢測任務(wù)的檢測線程的總數(shù)達(dá)到預(yù)設(shè)建立的線程的固定數(shù)量,也即當(dāng)前不存在空閑的線程以及休眠的線程時(shí),此時(shí)若新建線程,則可能導(dǎo)致后臺(tái)資源被大量占用而降低產(chǎn)品檢測速度,因此,通過預(yù)先建立的任務(wù)隊(duì)列來緩存當(dāng)前產(chǎn)生的新的產(chǎn)品檢測任務(wù)。需要說明的是,本實(shí)施例中對于任務(wù)隊(duì)列的數(shù)據(jù)結(jié)構(gòu)形式不限,比如單向鏈表結(jié)構(gòu)、雙向鏈表結(jié)構(gòu)等。

例如,在進(jìn)行產(chǎn)品檢測之前,預(yù)先建立多個(gè)線程,比如預(yù)先建立20條檢測線程,則每產(chǎn)生一條產(chǎn)品檢測任務(wù)則對應(yīng)分配一條線程,而若當(dāng)前已建立的線程已經(jīng)分配完畢,則將當(dāng)前產(chǎn)生的新的產(chǎn)品檢測任務(wù)緩存至任務(wù)隊(duì)列中,從而等待線程空閑時(shí)再行分配。

本實(shí)施例中,通過預(yù)先建立固定數(shù)量的線程,從而避免線程無限次新建而導(dǎo)致后臺(tái)資源被嚴(yán)重占用后使得產(chǎn)品檢測速度下降的問題,同時(shí),在固定數(shù)量的線程被全部占用時(shí),通過任務(wù)隊(duì)列以緩存其他新的產(chǎn)品檢測任務(wù),進(jìn)而在減少產(chǎn)品檢測任務(wù)處理量的同時(shí),相對提升產(chǎn)品的檢測速度。

進(jìn)一步可選的,在本發(fā)明線程管理裝置一實(shí)施例中,監(jiān)測模塊10還用于:監(jiān)測當(dāng)前是否存在已執(zhí)行完產(chǎn)品檢測任務(wù)的線程;分配模塊50還用于:在當(dāng)前存在已執(zhí)行完產(chǎn)品檢測任務(wù)的線程時(shí),從任務(wù)隊(duì)列中取出產(chǎn)品檢測任務(wù),并將該線程分配給該取出的產(chǎn)品檢測任務(wù)。

本實(shí)施例中,在任務(wù)隊(duì)列中緩存產(chǎn)品檢測任務(wù)的同時(shí),監(jiān)測當(dāng)前已分配的線程中是否存在已執(zhí)行完產(chǎn)品檢測任務(wù)的空閑線程,如果存在空閑的線程,也即存在可分配的線程時(shí),從任務(wù)隊(duì)列中取出產(chǎn)品檢測任務(wù),并將該空閑的檢測線程分配給該取出的產(chǎn)品檢測任務(wù)。

例如,預(yù)先建立了A、B、C、D四條線程,如果該四條線程都依次被分配了產(chǎn)品檢測任務(wù),則當(dāng)檢測到新的產(chǎn)品檢測任務(wù)時(shí),將產(chǎn)品檢測任務(wù)緩存到任務(wù)隊(duì)列中,同時(shí)監(jiān)測A、B、C、D四條線程是否已執(zhí)行完產(chǎn)品檢測任務(wù),假設(shè)A線程執(zhí)行完了檢測任務(wù),則可將任務(wù)隊(duì)列的隊(duì)首所對應(yīng)的產(chǎn)品檢測任務(wù)取出,并將A線程分配給該取出的產(chǎn)品檢測任務(wù),從而無需再次新建新的檢測任務(wù),進(jìn)而防止檢測線程的無限增加而導(dǎo)致后臺(tái)資源被大量占用致使產(chǎn)品檢測速度下降,從而相對提升了產(chǎn)品檢測的速度與效率。

以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
浏阳市| 遵义县| 南溪县| 湘西| 陈巴尔虎旗| 津市市| 宜城市| 特克斯县| 岑溪市| 天津市| 鄯善县| 石泉县| 陆丰市| 鄱阳县| 淳安县| 隆化县| 白沙| 鄯善县| 永嘉县| 奉化市| 通许县| 白朗县| 永定县| 新安县| 绥化市| 松溪县| 长泰县| 沅陵县| 江油市| 资溪县| 房山区| 安龙县| 句容市| 定结县| 潞西市| 怀来县| 桃园县| 彝良县| 铅山县| 广灵县| 临沧市|