動態調節線程的方法及裝置的制造方法
【專利摘要】本發明公開了一種動態調節線程的方法,包括以下步驟:從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中;監測當前線程對數據緩沖區中緩沖數據的執行效率;基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。本發明還公開了一種動態調節線程的裝置。本發明既能保證對數據的處理速度,又能避免因線程數過高導致機器負載加劇,實現在系統整體性能不受影響的情況下以最快速度執行完需要處理的輸入數據文件。
【專利說明】
動態調節線程的方法及裝置
技術領域
[0001]本發明涉及線程管理技術領域,尤其涉及一種動態調節線程的方法及裝置。
【背景技術】
[0002]目前,多線程并發技術在越來越多的系統中都有大規模的使用,多線程的使用雖然沒有提高CPU效率,但極大的提高了用戶的交互性和響應性。現有多線程方法中一般采用固定線程數目,在大批量執行任務的時候,固定線程數目過高,會導致機器負載加劇,系統整體性能受到影響;固定線程數目過低,會使得并發數目有限,效率過低,無法保證對數據較快的處理速度。因此,現有多線程方法中固定線程數目無法在合理、高效率的利用機器負載下既不影響系統整體性能,又能以最快速度執行完任務。
【發明內容】
[0003]本發明的主要目的在于提供一種動態調節線程的方法及裝置,旨在自動動態調節線程數目,以最快速度執行完任務。
[0004]為實現上述目的,本發明提供的一種動態調節線程的方法,所述方法包括以下步驟:
[0005]從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中;
[0006]監測當前線程對數據緩沖區中緩沖數據的執行效率;
[0007]基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。
[0008]優選地,所述從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中的步驟包括:
[0009]當數據緩沖區中的數據量小于預設的剩余數據閥值時,從需要處理的輸入數據文件中讀取預設數量的緩沖數據,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中。
[0010]優選地,所述監測當前線程對數據緩沖區中緩沖數據的執行效率的步驟包括:
[0011]監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量。
[0012]優選地,所述基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目的步驟包括:
[0013]當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,增加當前對數據緩沖區中緩沖數據執行的線程,其中,對數據緩沖區中緩沖數據執行的線程數目小于設定的最大線程值;若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程。
[0014]優選地,所述基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目的步驟還包括:
[0015]當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,通過喚醒已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程或新建線程來增加當前對數據緩沖區中緩沖數據執行的線程。
[0016]此外,為實現上述目的,本發明還提供一種動態調節線程的裝置,所述裝置包括:
[0017]讀取模塊,用于從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中;
[0018]監測模塊,用于監測當前線程對數據緩沖區中緩沖數據的執行效率;
[0019]動態調節模塊,用于基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。
[0020]優選地,所述讀取模塊具體用于:
[0021]當數據緩沖區中的數據量小于預設的剩余數據閥值時,從需要處理的輸入數據文件中讀取預設數量的緩沖數據,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中。
[0022]優選地,所述監測模塊具體用于:
[0023]監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量。
[0024]優選地,所述動態調節模塊具體用于:
[0025]當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,增加當前對數據緩沖區中緩沖數據執行的線程,其中,對數據緩沖區中緩沖數據執行的線程數目小于設定的最大線程值;若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程。
[0026]優選地,所述動態調節模塊還用于:
[0027]當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,通過喚醒已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程或新建線程來增加當前對數據緩沖區中緩沖數據執行的線程。
[0028]本發明提出的一種動態調節線程的方法及裝置,利用數據緩沖區從需要處理的輸入數據文件中緩沖輸入的數據,并對當前線程對數據緩沖區中緩沖數據的執行效率進行監測,以獲知當前線程對數據的處理速度,即可根據當前線程的處理速度動態調節當前對數據緩沖區中緩沖數據執行的線程數目,由于是根據監測的當前線程對數據的執行效率來動態調節線程數目,既能保證對數據的處理速度,又能避免因線程數過高導致機器負載加劇,實現在系統整體性能不受影響的情況下以最快速度執行完需要處理的輸入數據文件。
【附圖說明】
[0029]圖1為本發明動態調節線程的方法一實施例的流程示意圖;
[0030]圖2為本發明動態調節線程的裝置一實施例的功能模塊示意圖。
[0031]本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0032]應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0033]本發明提供一種動態調節線程的方法。
[0034]參照圖1,圖1為本發明動態調節線程的方法一實施例的流程示意圖。
[0035]在一實施例中,該動態調節線程的方法包括:
[0036]步驟S10,從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中;
[0037]本實施例中,在需要執行大批量數據時,由于數據流過大,不可能將所有要執行的大批量數據全部讀入內存中,因此,預設一數據緩沖區,用于從需要處理的大批量輸入數據文件中讀取預設數量的緩沖數據,并進行緩存,以使當前線程直接從數據緩沖區中讀取緩沖數據來執行。
[0038]步驟S20,監測當前線程對數據緩沖區中緩沖數據的執行效率;
[0039]對當前線程執行數據緩沖區中緩沖數據的執行效率進行監測,如可監測當前線程對數據緩沖區中緩沖數據的處理速度、數據緩沖區中剩余的數據量等能反映當前線程執行效率的各種參數。
[0040]步驟S30,基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。
[0041]根據監測的當前線程對數據緩沖區中緩沖數據的處理速度、數據緩沖區中剩余的數據量等參數即可對線程數目進行動態調節,如若當前線程對數據緩沖區中緩沖數據的處理速度過快,則可通過終止部分線程來降低線程數目;若當前線程對數據緩沖區中緩沖數據的處理速度過慢,則可通過增加部分線程來提升線程數目,以達到動態調節線程數目的目的。
[0042]本實施例利用數據緩沖區從需要處理的輸入數據文件中緩沖輸入的數據,并對當前線程對數據緩沖區中緩沖數據的執行效率進行監測,以獲知當前線程對數據的處理速度,即可根據當前線程的處理速度動態調節當前對數據緩沖區中緩沖數據執行的線程數目,由于是根據監測的當前線程對數據的執行效率來動態調節線程數目,既能保證對數據的處理速度,又能避免因線程數過高導致機器負載加劇,實現在系統整體性能不受影響的情況下以最快速度執行完需要處理的輸入數據文件。
[0043]進一步地,在其他實施例中,上述步驟SlO可以包括:當數據緩沖區中的數據量小于預設的剩余數據閥值時,從需要處理的輸入數據文件中讀取預設數量的緩沖數據,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中。
[0044]在當前線程對數據緩沖區中緩沖數據執行的過程中,數據緩沖區中的數據量會逐漸減少,當數據緩沖區中剩余的數據量小于預設的剩余數據閥值時,則說明當前線程對數據緩沖區中緩沖數據已快全部執行完,為了保證當前線程對數據的處理速度及效率,數據緩沖區中需要繼續補充數據,則從需要處理的輸入數據文件中讀取預設數量的緩沖數據R,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中,其中,預設數據緩沖隊列的數據量為D,當D多R時,說明需要處理的輸入數據文件中還有大量數據未處理,則通過該預設數據緩沖隊列將讀取的預設數量的緩沖數據R存儲至數據緩沖區中;當D〈R時,說明需要處理的輸入數據文件中僅剩部分少量數據,將輸入數據文件中僅剩的少量數據通過該預設數據緩沖隊列存儲至數據緩沖區后,待數據緩沖區中的緩沖數據全部被執行完畢,即可關閉所有線程,完成整個輸入數據文件的執行操作。
[0045]上述步驟S20可以包括:監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量。本實施例中通過監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量是否大于預設的剩余數據閥值來監測當前線程執行效率。
[0046]上述步驟S30可以包括:當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,則說明當前線程對數據緩沖區中緩沖數據的執行效率過低,處理速度過慢,導致數據緩沖區中積累了大量數據,則需要增加當前對數據緩沖區中緩沖數據執行的線程,以提高對數據緩沖區中緩沖數據的執行效率及處理速度,從而逐漸降低數據緩沖區中剩余的數據量。
[0047]在本實施例中,每個線程都會有創建、就緒、等待、死亡、運行五個狀態,新線程被創建后會直接獲取數據進行運行;當線程已執行完數據后,則會進入等待狀態,等待該線程被喚醒后再重新獲取到數據并重新運行。其中,線程的等待狀態是一種特殊的狀態,相當于暫時剝奪線程當前擁有的CPU時間片和CPU時間片的資格,使其返回就緒狀態,除非被再次喚醒,否則該線程將一直等待,不會被線程調度器選中并賦予CPU時間片,處于等待狀態的線程被喚醒后,即可和其他正常就緒狀態的線程一樣正常繼續執行數據。
[0048]本實施例中,當前對數據緩沖區中緩沖數據執行的線程從預設的初始線程數T_開始增加,隨著線程數目的增加,對數據緩沖區中緩沖數據進行并行處理的線程增加,則提高了對數據緩沖區中緩沖數據的執行效率及處理速度,數據緩沖區中剩余的數據量也加速減少,這樣,可通過不斷增加線程數目來以最快的速度執行數據緩沖區中的緩沖數據。同時,當隨著線程數目的增加,若當前線程對數據緩沖區中緩沖數據執行的速度過快,已對數據緩沖區中緩沖數據執行完的線程會進入等待狀態,若當前數據執行速度過快,則數據緩沖區中緩沖數據已被其他線程使用,且此時通過預設數據緩沖隊列從需要處理的輸入數據文件中讀取的預設數量的緩沖數據還未存儲至數據緩沖區中,這樣,該線程會因為獲取不到數據而長時間處于等待狀態,本實施例中,預先設定一最長等待時間,若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程,即該線程進入死亡狀態,從而在當前線程對數據緩沖區中緩沖數據執行的速度過快時終止等待時間過長的線程,減少并行的線程數目,以減輕整個系統的負載,且保證了當前線程對數據緩沖區中緩沖數據較高的執行效率。
[0049]進一步地,為了避免出現因線程數目過高導致機器負載加劇,系統整體性能受到影響的情況發生,本實施例中,預先設定一最大線程值Tniax,當對數據緩沖區中緩沖數據執行的線程從預設的初始線程數τ_開始增加的過程中,線程數目最大不能超過預先設定的最大線程值Tnax。
[0050]而且,本實施例中,當需要增加當前對數據緩沖區中緩沖數據執行的線程時,既可喚醒已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程重新來執行數據,也可在沒有處于等待狀態的線程時,通過新建線程來直接獲取并執行數據。這樣,根據對系統負載及處理速度的不同要求,可預先設定數據緩沖區的剩余數據閥值及每次從需要處理的輸入數據文件中讀取至數據緩沖區中的緩沖數據數量,當每次數據緩沖區中的數據量小于預設的剩余數據閥值時,則均從需要處理的輸入數據文件中讀取相同數量的緩沖數據至數據緩沖區中,保證輸入至數據緩沖區中的數據穩定。再通過當前線程對數據緩沖區中緩沖數據的執行效率來動態調節線程數目:若數據緩沖區中積累的數據過多,則增加當前對數據緩沖區中緩沖數據執行的線程,以提高對數據緩沖區中緩沖數據的執行效率及處理速度;若當前線程對數據緩沖區中緩沖數據執行的速度過快,則通過預先設定的最長等待時間來終止等待時間過長的線程,減少并行的線程數目,使得本實施例中既能保證對數據的處理速度,又能避免因線程數過高導致機器負載加劇,實現在系統整體性能不受影響的情況下以最快速度執行完需要處理的輸入數據文件。
[0051]本發明進一步提供一種動態調節線程的裝置。
[0052]參照圖2,圖2為本發明動態調節線程的裝置一實施例的功能模塊示意圖。
[0053]在一實施例中,該動態調節線程的裝置包括:
[0054]讀取模塊01,用于從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中;
[0055]監測模塊02,用于監測當前線程對數據緩沖區中緩沖數據的執行效率;
[0056]動態調節模塊03,用于基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。
[0057]本實施例中,在需要執行大批量數據時,由于數據流過大,不可能將所有要執行的大批量數據全部讀入內存中,因此,預設一數據緩沖區,用于從需要處理的大批量輸入數據文件中讀取預設數量的緩沖數據,并進行緩存,以使當前線程直接從數據緩沖區中讀取緩沖數據來執行。
[0058]對當前線程執行數據緩沖區中緩沖數據的執行效率進行監測,如可監測當前線程對數據緩沖區中緩沖數據的處理速度、數據緩沖區中剩余的數據量等能反映當前線程執行效率的各種參數。
[0059]根據監測的當前線程對數據緩沖區中緩沖數據的處理速度、數據緩沖區中剩余的數據量等參數即可對線程數目進行動態調節,如若當前線程對數據緩沖區中緩沖數據的處理速度過快,則可通過終止部分線程來降低線程數目;若當前線程對數據緩沖區中緩沖數據的處理速度過慢,則可通過增加部分線程來提升線程數目,以達到動態調節線程數目的目的。
[0060]本實施例利用數據緩沖區從需要處理的輸入數據文件中緩沖輸入的數據,并對當前線程對數據緩沖區中緩沖數據的執行效率進行監測,以獲知當前線程對數據的處理速度,即可根據當前線程的處理速度動態調節當前對數據緩沖區中緩沖數據執行的線程數目,由于是根據監測的當前線程對數據的執行效率來動態調節線程數目,既能保證對數據的處理速度,又能避免因線程數過高導致機器負載加劇,實現在系統整體性能不受影響的情況下以最快速度執行完需要處理的輸入數據文件。
[0061]進一步地,在其他實施例中,上述讀取模塊01可以用于:當數據緩沖區中的數據量小于預設的剩余數據閥值時,從需要處理的輸入數據文件中讀取預設數量的緩沖數據,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中。
[0062]在當前線程對數據緩沖區中緩沖數據執行的過程中,數據緩沖區中的數據量會逐漸減少,當數據緩沖區中剩余的數據量小于預設的剩余數據閥值時,則說明當前線程對數據緩沖區中緩沖數據已快全部執行完,為了保證當前線程對數據的處理速度及效率,數據緩沖區中需要繼續補充數據,則從需要處理的輸入數據文件中讀取預設數量的緩沖數據R,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中,其中,預設數據緩沖隊列的數據量為D,當D多R時,說明需要處理的輸入數據文件中還有大量數據未處理,則通過該預設數據緩沖隊列將讀取的預設數量的緩沖數據R存儲至數據緩沖區中;當D〈R時,說明需要處理的輸入數據文件中僅剩部分少量數據,將輸入數據文件中僅剩的少量數據通過該預設數據緩沖隊列存儲至數據緩沖區后,待數據緩沖區中的緩沖數據全部被執行完畢,即可關閉所有線程,完成整個輸入數據文件的執行操作。
[0063]上述監測模塊02可以用于:監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量。本實施例中通過監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量是否大于預設的剩余數據閥值來監測當前線程執行效率。
[0064]上述動態調節模塊03可以用于:當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,增加當前對數據緩沖區中緩沖數據執行的線程,其中,對數據緩沖區中緩沖數據執行的線程數目小于設定的最大線程值;若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程。
[0065]當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,則說明當前線程對數據緩沖區中緩沖數據的執行效率過低,處理速度過慢,導致數據緩沖區中積累了大量數據,則需要增加當前對數據緩沖區中緩沖數據執行的線程,以提高對數據緩沖區中緩沖數據的執行效率及處理速度,從而逐漸降低數據緩沖區中剩余的數據量。
[0066]在本實施例中,每個線程都會有創建、就緒、等待、死亡、運行五個狀態,新線程被創建后會直接獲取數據進行運行;當線程已執行完數據后,則會進入等待狀態,等待該線程被喚醒后再重新獲取到數據并重新運行。其中,線程的等待狀態是一種特殊的狀態,相當于暫時剝奪線程當前擁有的CPU時間片和CPU時間片的資格,使其返回就緒狀態,除非被再次喚醒,否則該線程將一直等待,不會被線程調度器選中并賦予CPU時間片,處于等待狀態的線程被喚醒后,即可和其他正常就緒狀態的線程一樣正常繼續執行數據。
[0067]本實施例中,當前對數據緩沖區中緩沖數據執行的線程從預設的初始線程數T_開始增加,隨著線程數目的增加,對數據緩沖區中緩沖數據進行并行處理的線程增加,則提高了對數據緩沖區中緩沖數據的執行效率及處理速度,數據緩沖區中剩余的數據量也加速減少,這樣,可通過不斷增加線程數目來以最快的速度執行數據緩沖區中的緩沖數據。同時,當隨著線程數目的增加,若當前線程對數據緩沖區中緩沖數據執行的速度過快,已對數據緩沖區中緩沖數據執行完的線程會進入等待狀態,若當前數據執行速度過快,則數據緩沖區中緩沖數據已被其他線程使用,且此時通過預設數據緩沖隊列從需要處理的輸入數據文件中讀取的預設數量的緩沖數據還未存儲至數據緩沖區中,這樣,該線程會因為獲取不到數據而長時間處于等待狀態,本實施例中,預先設定一最長等待時間,若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程,即該線程進入死亡狀態,從而在當前線程對數據緩沖區中緩沖數據執行的速度過快時終止等待時間過長的線程,減少并行的線程數目,以減輕整個系統的負載,且保證了當前線程對數據緩沖區中緩沖數據較高的執行效率。
[0068]進一步地,為了避免出現因線程數目過高導致機器負載加劇,系統整體性能受到影響的情況發生,本實施例中,預先設定一最大線程值Tniax,當對數據緩沖區中緩沖數據執行的線程從預設的初始線程數τ_開始增加的過程中,線程數目最大不能超過預先設定的最大線程值Tnax。
[0069]而且,本實施例中,當需要增加當前對數據緩沖區中緩沖數據執行的線程時,既可喚醒已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程重新來執行數據,也可在沒有處于等待狀態的線程時,通過新建線程來直接獲取并執行數據。這樣,根據對系統負載及處理速度的不同要求,可預先設定數據緩沖區的剩余數據閥值及每次從需要處理的輸入數據文件中讀取至數據緩沖區中的緩沖數據數量,當每次數據緩沖區中的數據量小于預設的剩余數據閥值時,則均從需要處理的輸入數據文件中讀取相同數量的緩沖數據至數據緩沖區中,保證輸入至數據緩沖區中的數據穩定。再通過當前線程對數據緩沖區中緩沖數據的執行效率來動態調節線程數目:若數據緩沖區中積累的數據過多,則增加當前對數據緩沖區中緩沖數據執行的線程,以提高對數據緩沖區中緩沖數據的執行效率及處理速度;若當前線程對數據緩沖區中緩沖數據執行的速度過快,則通過預先設定的最長等待時間來終止等待時間過長的線程,減少并行的線程數目,使得本實施例中既能保證對數據的處理速度,又能避免因線程數過高導致機器負載加劇,實現在系統整體性能不受影響的情況下以最快速度執行完需要處理的輸入數據文件。
[0070]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0071]以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
【主權項】
1.一種動態調節線程的方法,其特征在于,所述方法包括以下步驟: 從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中; 監測當前線程對數據緩沖區中緩沖數據的執行效率; 基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。2.如權利要求1所述的動態調節線程的方法,其特征在于,所述從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中的步驟包括: 當數據緩沖區中的數據量小于預設的剩余數據閥值時,從需要處理的輸入數據文件中讀取預設數量的緩沖數據,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中。3.如權利要求1或2所述的動態調節線程的方法,其特征在于,所述監測當前線程對數據緩沖區中緩沖數據的執行效率的步驟包括: 監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量。4.如權利要求3所述的動態調節線程的方法,其特征在于,所述基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目的步驟包括: 當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,增加當前對數據緩沖區中緩沖數據執行的線程,其中,對數據緩沖區中緩沖數據執行的線程數目小于設定的最大線程值;若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程。5.如權利要求4所述的動態調節線程的方法,其特征在于,所述基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目的步驟還包括: 當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,通過喚醒已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程或新建線程來增加當前對數據緩沖區中緩沖數據執行的線程。6.一種動態調節線程的裝置,其特征在于,所述裝置包括: 讀取模塊,用于從需要處理的輸入數據文件中讀取預設數量的緩沖數據至預設的數據緩沖區中; 監測模塊,用于監測當前線程對數據緩沖區中緩沖數據的執行效率; 動態調節模塊,用于基于所述執行效率動態調節對數據緩沖區中緩沖數據執行的線程數目。7.如權利要求6所述的裝置,其特征在于,所述讀取模塊具體用于: 當數據緩沖區中的數據量小于預設的剩余數據閥值時,從需要處理的輸入數據文件中讀取預設數量的緩沖數據,并通過一預設數據緩沖隊列將讀取的預設數量的緩沖數據存儲至數據緩沖區中。8.如權利要求6或7所述的裝置,其特征在于,所述監測模塊具體用于: 監測當前線程對數據緩沖區中緩沖數據執行后數據緩沖區中剩余的數據量。9.如權利要求8所述的裝置,其特征在于,所述動態調節模塊具體用于: 當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,增加當前對數據緩沖區中緩沖數據執行的線程,其中,對數據緩沖區中緩沖數據執行的線程數目小于設定的最大線程值;若已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程的等待時間超過預先設定的最長等待時間,則終止該線程。10.如權利要求9所述的裝置,其特征在于,所述動態調節模塊還用于: 當數據緩沖區中剩余的數據量大于預設的剩余數據閥值時,通過喚醒已對數據緩沖區中緩沖數據執行完并處于等待狀態的線程或新建線程來增加當前對數據緩沖區中緩沖數據執行的線程。
【文檔編號】G06F9/46GK105824691SQ201510009627
【公開日】2016年8月3日
【申請日】2015年1月8日
【發明人】毛皓, 彭利榮, 劉興翚, 岑海菊, 鄒文濤, 李玲, 歐人杰, 張博文
【申請人】平安科技(深圳)有限公司