1.一種文件的多線程下載方法,其中待下載文件被劃分成多個文件區(qū)間,每個所述文件區(qū)間對應于一段下載線程,所述多線程下載方法包括:
狀態(tài)判斷步驟,用于在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài),其中所述下一線程是指與所述當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程;和
協(xié)助下載步驟,用于在判定所述下一線程處于非正常下載狀態(tài)的情況下,使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間,并停止且退出所述下一線程。
2.根據(jù)權利要求1所述的多線程下載方法,其中,每段線程請求下載的文件區(qū)間是從該段線程對應的文件區(qū)間的起始位置直到所述待下載文件的末尾。
3.根據(jù)權利要求2所述的多線程下載方法,其中,所述協(xié)助下載步驟還包括:
在使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間的情況下,將所述當前線程的需下載大小增加所述下一線程對應的文件區(qū)間的大小。
4.根據(jù)權利要求1至3中任一項所述的多線程下載方法,還包括:
重復執(zhí)行所述狀態(tài)判斷步驟和所述協(xié)助下載步驟,直到所述當前線程下載完成的文件區(qū)間已經是所述待下載文件的最后一個文件區(qū)間。
5.根據(jù)權利要求1至3中任一項所述的多線程下載方法,其中,判斷下一線程是否處于非正常下載狀態(tài)還包括以下中的任一個或多個:
判斷所述下一線程是否請求超時而無法下載對應的文件區(qū)間;
判斷所述下一線程是否被網(wǎng)關劫持而無法下載對應的文件區(qū)間;以及
判斷所述下一線程是否因請求超時而重試下載由此導致下載耗時超過預定時間。
6.根據(jù)權利要求1至3中任一項所述的多線程下載方法,其中,判斷下一線程是否處于非正常下載狀態(tài)包括:
響應于確定所述下一線程沒有下載過任何文件數(shù)據(jù),判定所述下一線程處于非正常下載狀態(tài)。
7.根據(jù)權利要求1至3中任一項所述的多線程下載方法,其中,判斷下一線程是否處于非正常下載狀態(tài)包括:
響應于確定所述下一線程已下載過文件數(shù)據(jù)且滿足以下條件中的任一個或多個的組合,而判定所述下一線程處于非正常下載狀態(tài):
所述下一線程已下載的文件數(shù)據(jù)不超過該段線程需下載大小的特定比例;以及
所述下一線程已下載的文件數(shù)據(jù)大小不超過預定閾值。
8.一種文件的多線程下載裝置,其中待下載文件被劃分成多個文件區(qū)間,每個所述文件區(qū)間對應于一段下載線程,所述多線程下載裝置包括:
狀態(tài)判斷單元,用于在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài),其中所述下一線程是指與所述當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程;和
協(xié)助下載單元,用于在判定所述下一線程處于非正常下載狀態(tài)的情況下,使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間,并停止且退出所述下一線程。
9.根據(jù)權利要求8所述的多線程下載裝置,其中,每段線程請求下載的文件區(qū)間是從該段線程對應的文件區(qū)間的起始位置直到所述待下載文件的末尾。
10.根據(jù)權利要求9所述的多線程下載裝置,其中,所述協(xié)助下載單元還包括:
下載大小調整單元,用于在使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間的情況下,將所述當前線程的需下載大小增加所述下一線程對應的文件區(qū)間的大小。
11.根據(jù)權利要求8至10中任一項所述的多線程下載裝置,還包括:
重復使能單元,用于使得所述狀態(tài)判斷單元和所述協(xié)助下載單元重復操作,直到所述當前線程下載完成的文件區(qū)間已經是所述待下載文件的最后一個文件區(qū)間。
12.根據(jù)權利要求8至10中任一項所述的多線程下載裝置,其中,所述狀態(tài)判斷單元包括以下中的任一個或多個:
第一狀態(tài)判斷模塊,用于判斷所述下一線程是否請求超時而無法下載對應的文件區(qū)間;
第二狀態(tài)判斷模塊,用于判斷所述下一線程是否被網(wǎng)關劫持而無法下載對應的文件區(qū)間;以及
第三狀態(tài)判斷模塊,用于判斷所述下一線程是否因請求超時而重試下載由此導致下載耗時超過預定時間。
13.根據(jù)權利要求8至9中任一項所述的多線程下載裝置,其中,所述狀態(tài)判斷單元包括:
用于響應于確定所述下一線程沒有下載過任何文件數(shù)據(jù)而判定所述下一線程處于非正常下載狀態(tài)的模塊。
14.根據(jù)權利要求8至9中任一項所述的多線程下載裝置,其中,所述狀態(tài)判斷單元包括:
用于響應于確定所述下一線程已下載過文件數(shù)據(jù)且滿足以下條件中的任一個或多個的組合,而判定所述下一線程處于非正常下載狀態(tài)的裝置:
所述下一線程已下載的文件數(shù)據(jù)不超過該段線程需下載大小的特定比例;以及
所述下一線程已下載的文件數(shù)據(jù)大小不超過預定閾值。
15.一種計算設備,包括:
網(wǎng)絡接口,所述網(wǎng)絡接口使得所述計算設備能夠經由一個或多個網(wǎng)絡進行文件的多線程下載;
存儲器,通過所述網(wǎng)絡接口下載的文件存儲在所述存儲器中;以及
一個或多個處理器,與所述網(wǎng)絡接口和所述存儲器相連接,所述一個或多個處理器配置為將待下載文件劃分成多個文件區(qū)間,使得每個所述文件區(qū)間對應于一段下載線程,并執(zhí)行以下操作:
在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài),其中所述下一線程是指與所述當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程;和
在判定所述下一線程處于非正常下載狀態(tài)的情況下,使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間,并停止且退出所述下一線程。