下載方法和裝置制造方法
【專利摘要】本發(fā)明提出一種下載方法和裝置,其中,所述方法包括以下步驟:根據(jù)待下載文件的信息建立多個下載線程;以及在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載。本發(fā)明實施例的下載方法,可在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載,避免了一個或多個下載線程響應速度緩慢的影響,使下載更加順暢,提升用戶下載體驗。
【專利說明】下載方法和裝置【技術領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術領域】,特別涉及一種下載方法和裝置。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)行業(yè)的日益進步,下載技術不斷發(fā)展,用戶可通過互聯(lián)網(wǎng)下載豐富的資源。為了提升下載速度,目前主要采用多線程下載。在多線程下載的過程中,如果服務器對某一下載線程的響應過慢,會影響整個下載任務的響應速度。例如,如果這個下載線程的響應中斷,而下載任務的其他下載線程已經(jīng)完成,則整個下載任務會阻塞在該中斷的下載線程上,直到這個下載線程的響應恢復,并且完成該下載線程的任務時,整個下載任務才能完成。因此,現(xiàn)有的下載技術中,會因某一個或多個下載線程的響應速度緩慢的影響,容易出現(xiàn)下載緩慢、下載阻塞等問題,嚴重影響用戶的下載體驗。
【發(fā)明內(nèi)容】
[0003]本發(fā)明旨在至少在一定程度上解決上述技術問題。
[0004]為此,本發(fā)明的第一個目的在于提出一種下載方法。該方法可為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載,減小了個別線程響應速度緩慢的影響,使下載速度更快、更順暢,提高用戶的下載體驗。
[0005]本發(fā)明的第二個目的在于提出一種下載裝置。
[0006]為達上述目的,根據(jù)本發(fā)明第一方面實施例提出了一種下載方法,包括以下步驟:根據(jù)待下載文件的信息建立多個下載線程;以及在所述多個下載線程中的一個下載線程完成下載任務之后,為所述已 完成下載任務的下載線程建立新下載任務以協(xié)助所述多個下載線程中的其他下載線程進行下載。
[0007]本發(fā)明實施例的下載方法,根據(jù)待下載文件的信息建立多個下載線程,在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載,減小了個別線程響應速度緩慢的影響,使下載速度更快、更順暢,提高用戶的下載體驗。
[0008]本發(fā)明第二方面實施例提供了一種下載裝置,包括:下載線程建立模塊,用于根據(jù)待下載文件的信息建立多個下載線程;以及協(xié)助下載模塊,用于在所述多個下載線程中的一個下載線程完成下載任務之后,為所述已完成下載任務的下載線程建立新下載任務以協(xié)助所述多個下載線程中的其他下載線程進行下載。
[0009]本發(fā)明實施例的下載裝置,根據(jù)待下載文件的信息建立多個下載線程,在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載,減小了個別線程響應速度緩慢的影響,使下載速度更快、更順暢,提高用戶的下載體驗。
[0010]本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。【專利附圖】
【附圖說明】
[0011]本發(fā)明的上述和/或附加的方面和優(yōu)點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0012]圖1為根據(jù)本發(fā)明一個實施例的下載方法的流程圖;
[0013]圖2為根據(jù)本發(fā)明另一個實施例的下載方法的流程圖;
[0014]圖3為根據(jù)本發(fā)明一個具體實施例根據(jù)待協(xié)助下載線程的未下載內(nèi)容建立已完成下載任務的下載線程的新下載任務的流程圖;
[0015]圖4為根據(jù)本發(fā)明一個實施例的下載裝置的結構示意圖;
[0016]圖5為根據(jù)本發(fā)明另一個實施例的下載裝置的結構示意圖。
【具體實施方式】
[0017]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0018]在本發(fā)明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內(nèi)”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。
[0019]在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領域的普通技術人員而言,可以具體情況理解上述術語在本發(fā)明中的具體含義。
[0020]下面參考附圖描述根據(jù)本發(fā)明實施例的下載方法和裝置。
[0021]在現(xiàn)有下載技術中,因某一個或多個下載線程的響應速度緩慢的影響,會出現(xiàn)的下載緩慢、下載阻塞等現(xiàn)象,從而影響用戶的下載體驗。為此,本發(fā)明提出一種下載方法,包括以下步驟:根據(jù)待下載文件的信息建立多個下載線程;以及在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載。該方法能夠有效解決上述問題,有效提高下載速度。
[0022]圖1為根據(jù)本發(fā)明一個實施例的下載方法的流程圖。如圖1所示,該下載方法包括以下步驟。
[0023]S101,根據(jù)待下載文件的信息建立多個下載線程。
[0024]在本發(fā)明的實施例中,待下載文件的信息為能夠標識待下載文件的信息,以便于下載線程明確下載目標,可包括待下載文件的大小、文件頭、文件名等信息。為了提高下載速度,可根據(jù)上述待下載文件的信息建立多個下載線程對具有與待下載文件的信息的文件進行下載。[0025]S102,在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載。
[0026]在本發(fā)明的一個實施例中,由于受到不同資源服務器的網(wǎng)絡環(huán)境、資源屬性等因素的影響,每個下載線程的下載速度可能不同。當下載速度較快的下載線程完成任務之后,可根據(jù)其他下載線程的下載進度、下載速度等情況為該下載線程建立新下載任務以協(xié)助其他下載線程進行下載。從而,可避免一個或多個下載線程響應速度緩慢的影響。
[0027]本發(fā)明實施例的下載方法,通過對待下載文件建立多個下載線程,在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載,避免了一個或多個下載線程響應速度緩慢的影響,使下載更加順暢,提升用戶下載體驗。
[0028]圖2為根據(jù)本發(fā)明另一個實施例的下載方法的流程圖。在本實施例中,通過對待下載文件進行分塊,結合普通下載快和加速下載塊對文件進行下載,有效地防止了個別連接響應過慢、導致線程阻塞的問題,提高了下載速度以及下載的流暢性,提升用戶下載體驗。如圖2所示,該下載方法包括以下步驟。
[0029]S201,采用分塊算法將待下載文件分為多個普通下載塊,并根據(jù)多個普通下載塊建立分別對應的多個下載線程。
[0030]在本發(fā)明的實施例中,普通下載塊是指為某個下載內(nèi)容第一次建立的下載塊。具體地,在下載開始時,下載裝置可采用分塊算法將文件分為多個下載塊,下載塊的個數(shù)不超過預設閾值,其中,每個下載塊為一個普通下載塊,預設閾值可為默認數(shù)值或由用戶設定,以限制下載的線程數(shù)量。在本發(fā)明的實施例中,分塊算法可為二分法,也可為其他的算法,本發(fā)明對此不做具體限定。
[0031]S202,通過多個下載線程建立多個下載連接,以分別根據(jù)多個普通下載塊進行下載。
[0032]在本發(fā)明的實施例中,可通過多個下載線程建立與相應資源服務器相連的多個下載連接,每個下載連接分別對應一個普通下載塊,每個普通下載塊對應一個下載連接,從而可分別根據(jù)多個普通下載塊進行下載。
[0033]S203,在多個下載線程中的一個下載線程完成下載任務之后,獲取其他下載線程中預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程,并將預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程作為待協(xié)助下載線程。
[0034]在本發(fā)明的實施例中,將預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程作為待協(xié)助下載線程,可由其他已完成下載任務的線程對其進行協(xié)助下載,使該未下載內(nèi)容更快的下載完成。
[0035]S204,根據(jù)待協(xié)助下載線程的未下載內(nèi)容建立已完成下載任務的下載線程的新下載任務。
[0036]在本發(fā)明的實施例中,可首先根據(jù)待協(xié)助下載線程的未下載內(nèi)容的數(shù)據(jù)量大小確定新的下載任務的下載起點。當未下載內(nèi)容的數(shù)據(jù)量較小時,可直接以未下載內(nèi)容的起點為下載起點;當未下載內(nèi)容的數(shù)據(jù)量較大時,可采用分塊算法繼續(xù)對未下載內(nèi)容進行分塊,并建立新的下載任務。具體地,可通過如圖3所示的步驟根據(jù)待協(xié)助下載線程的未下載內(nèi)容建立已完成下載任務的下載線程的新下載任務。[0037]S301,判斷待協(xié)助下載線程的未下載內(nèi)容的數(shù)據(jù)量是否小于預設閾值。
[0038]S302,如果判斷小于預設閾值,則根據(jù)未下載內(nèi)容的起點建立加速下載塊。
[0039]在本發(fā)明的實施例中,如果普通下載塊中未下載的內(nèi)容的數(shù)據(jù)量小于預設閾值(如:32K),則不再對未下載內(nèi)容進行分塊,可從未下載內(nèi)容的起點建立加速下載塊,并開始下載。在本發(fā)明的實施例中,如果有多個已完成下載任務的下載線程,則這多個下載線程可根據(jù)未下載內(nèi)容分別建立加速下載塊,以同時對未下載內(nèi)容進行下載。
[0040]S303,將待協(xié)助下載線程的普通下載塊標記為主下載塊,并建立主下載塊與加速下載塊之間的關聯(lián)關系。
[0041 ] 在本發(fā)明的實施例中,加速下載塊是已完成下載任務的下載線程根據(jù)普通下載塊中未下載內(nèi)容建立的下載塊。多個已完成下載任務的下載線程可根據(jù)同一未下載內(nèi)容分別建立加速下載塊,以對未下載內(nèi)容同時進行下載,提高下載速度。由此,根據(jù)該普通下載塊標記的主下載塊可與多個加速下載塊相關聯(lián)。
[0042]S304,如果判斷大于預設閾值,則利用分塊算法根據(jù)未下載內(nèi)容為已完成下載任務的下載線程建立新的普通下載塊。
[0043]在本發(fā)明的實施例中,如果普通下載塊中未下載的內(nèi)容大于預設閾值(如32Κ),則可利用分塊算法根據(jù)未下載內(nèi)容為已完成下載任務的下載線程建立新的普通下載塊。以二分法為例,可將未下載內(nèi)容的中點之后的一半內(nèi)容作為新的普通下載塊,并根據(jù)該新的普通下載塊開始下載,以避免與之前的普通下載塊的下載內(nèi)容重合。
[0044]S305,如果已完成下載任務的下載線程的下載塊為普通下載塊,則根據(jù)關聯(lián)關系停止普通下載塊作為主下載塊時所對應的加速下載塊。
[0045]在本發(fā)明的實施例中,如果已完成下載任務的下載線程的下載塊為普通下載塊,為了避免下載內(nèi)容重合,則停止該普通下載塊作為主下載塊時所對應的加速下載塊,以完成下載。判斷下載塊是否為普通下載塊還是加速下載塊,可根據(jù)預設閾值判斷。
[0046]S306,如果已完成下載任務的下載線程對應下載塊為加速下載塊,則根據(jù)關聯(lián)關系將加速下載塊的下載結果合并至加速下載塊對應的主下載塊。
[0047]在本發(fā)明的實施例中,如果已完成下載任務的下載線程對應下載塊為加速下載塊,則將多個加速下載塊對應的下載內(nèi)容合并至對應的主下載塊。
[0048]S307,在將加速下載塊的下載結果合并至加速下載塊對應的主下載塊之后,停止該主下載塊所對應的其他加速下載塊。
[0049]在本發(fā)明的實施例中,在主下載塊對應的多個加速下載塊中,如果其中一個加速下載塊完成下載,則可停止其他的加速下載塊的下載。
[0050]本發(fā)明實施例的下載方法,通過對待下載文件進行分塊,結合普通下載快和加速下載塊對文件進行下載,有效地防止了個別連接響應過慢、導致線程阻塞的問題,提高了下載速度以及下載的流暢性,提升用戶下載體驗。
[0051 ] 為了實現(xiàn)上述實施例,本發(fā)明還提出一種下載裝置。
[0052]圖4為根據(jù)本發(fā)明一個實施例的下載裝置的結構示意圖。
[0053]具體地,如圖4所示,根據(jù)本發(fā)明實施例的下載裝置,包括:下載線程建立模塊100和協(xié)助下載模塊200。
[0054]下載線程建立模塊100用于根據(jù)待下載文件的信息建立多個下載線程。[0055]在本發(fā)明的實施例中,待下載文件的信息為能夠標識待下載文件的信息,以便于下載線程明確下載目標,可包括待下載文件的大小、文件頭、文件名等信息。為了提高下載速度,下載線程建立模塊100可根據(jù)上述待下載文件的信息建立多個下載線程對具有與待下載文件的信息的文件進行下載。
[0056]協(xié)助下載模塊200用于在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載。
[0057]在本發(fā)明的一個實施例中,由于受到不同資源服務器的網(wǎng)絡環(huán)境、資源屬性等因素的影響,每個下載線程的下載速度可能不同。當下載速度較快的下載線程完成任務之后,協(xié)助下載模塊200可根據(jù)其他下載線程的下載進度、下載速度等情況為該下載線程建立新下載任務以協(xié)助其他下載線程進行下載。從而,可避免一個或多個下載線程響應速度緩慢的影響。
[0058]本發(fā)明實施例的下載裝置,通過對待下載文件建立多個下載線程,在多個下載線程中的一個下載線程完成下載任務之后,為已完成下載任務的下載線程建立新下載任務以協(xié)助多個下載線程中的其他下載線程進行下載,避免了一個或多個下載線程響應速度緩慢的影響,使下載更加順暢,提升用戶下載體驗。
[0059]圖5為根據(jù)本發(fā)明另一個實施例的下載裝置的結構示意圖。
[0060]具體地,如圖5所示,根據(jù)本發(fā)明實施例的下載裝置,包括:下載線程建立模塊100和協(xié)助下載模塊200。其中,下載線程建立模塊100進一步包括:劃分單元110和第一下載單元120。協(xié)助下載模塊200進一步包括:獲取單元210和第二下載單元220。其中,第二下載單元220進一步包括:判斷子單元221、第一下載子單元222、第二下載子單元223、關聯(lián)子單元224和下載控制子單元225。
[0061]劃分單元110用于采用分塊算法將待下載文件分為多個普通下載塊,并根據(jù)多個普通下載塊建立分別對應的多個下載線程。
[0062]在本發(fā)明的實施例中,普通下載塊是指為某個下載內(nèi)容第一次建立的下載塊。具體地,在下載開始時,下載裝置可采用分塊算法將文件分為多個下載塊,下載塊的個數(shù)不超過預設閾值,其中,每個下載塊為一個普通下載塊,預設閾值可為默認數(shù)值或由用戶設定,以限制下載的線程數(shù)量。在本發(fā)明的實施例中,分塊算法可為二分法,也可為其他的算法,本發(fā)明對此不做具體限定。
[0063]第一下載單元120用于通過多個下載線程建立多個下載連接,以分別根據(jù)多個普通下載塊進行下載。
[0064]在本發(fā)明的實施例中,第一下載單元120可通過多個下載線程建立與相應資源服務器相連的多個下載連接,每個下載連接分別對應一個普通下載塊,每個普通下載塊對應一個下載連接,從而可分別根據(jù)多個普通下載塊進行下載。
[0065]獲取單元210用于獲取其他下載線程中預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程,并將預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程作為待協(xié)助下載線程。
[0066]在本發(fā)明的實施例中,獲取單元210將預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程作為待協(xié)助下載線程,可由其他已完成下載任務的線程對其進行協(xié)助下載,使該未下載內(nèi)容更快的下載完成。
[0067]第二下載單元220用于根據(jù)待協(xié)助下載線程的未下載內(nèi)容建立已完成下載任務的下載線程的新下載任務。
[0068]在本發(fā)明的實施例中,第二下載單元220可首先根據(jù)待協(xié)助下載線程的未下載內(nèi)容的數(shù)據(jù)量大小確定新的下載任務的下載起點。當未下載內(nèi)容的數(shù)據(jù)量較小時,可直接以未下載內(nèi)容的起點為下載起點;當未下載內(nèi)容的數(shù)據(jù)量較大時,可采用分塊算法繼續(xù)對未下載內(nèi)容進行分塊,并建立新的下載任務。
[0069]具體地,第二下載單元220進一步包括:判斷子單元221、第一下載子單元222、第二下載子單元223、關聯(lián)子單元224和下載控制子單元225。
[0070]判斷子單元221用于判斷待協(xié)助下載線程的未下載內(nèi)容的數(shù)據(jù)量是否小于預設閾值。
[0071]第一下載子單元222用于在判斷單元判斷小于預設閾值時,根據(jù)未下載內(nèi)容的起點建立加速下載塊。
[0072]在本發(fā)明的實施例中,如果普通下載塊中未下載的內(nèi)容的數(shù)據(jù)量小于預設閾值(如32K),則不再對未下載內(nèi)容進行分塊,第一下載子單元222可從未下載內(nèi)容的起點建立加速下載塊,并開始下載。在本發(fā)明的實施例中,如果有多個已完成下載任務的下載線程,則這多個下載線程可根據(jù)未下載內(nèi)容分別建立加速下載塊,以同時對未下載內(nèi)容進行下載。
[0073]第二下載子單元223用于在判斷大于預設閾值時,利用分塊算法根據(jù)未下載內(nèi)容為已完成下載任務的下載線程建立新的普通下載塊。
[0074]在本發(fā)明的實施例中,如果普通下載塊中未下載的內(nèi)容大于預設閾值(如32K),則可利用分塊算法根據(jù)未下載內(nèi)容為已完成下載任務的下載線程建立新的普通下載塊。以二分法為例,第二下載子單元223可將未下載內(nèi)容的中點之后的一半內(nèi)容作為新的普通下載塊,并根據(jù)該新的普通下載塊開始下載,以避免與之前的普通下載塊的下載內(nèi)容重合。
[0075]關聯(lián)子單元224用于將待協(xié)助下載線程的普通下載塊標記為主下載塊,并建立主下載塊與加速下載塊之間的關聯(lián)關系。
[0076]在本發(fā)明的實施例中,加速下載塊是已完成下載任務的下載線程根據(jù)普通下載塊中未下載內(nèi)容建立的下載塊。多個已完成下載任務的下載線程可根據(jù)同一未下載內(nèi)容分別建立加速下載塊,以對未下載內(nèi)容同時進行下載,提高下載速度。由此,關聯(lián)子單元224根據(jù)該普通下載塊標記的主下載塊可與多個加速下載塊相關聯(lián)。
[0077]下載控制子單元225用于在已完成下載任務的下載線程的下載塊為普通下載塊時,根據(jù)關聯(lián)關系停止普通下載塊作為主下載塊時所對應的加速下載塊,以及在已完成下載任務的下載線程對應下載塊為加速下載塊時,根據(jù)關聯(lián)關系將加速下載塊的下載結果合并至加速下載塊對應的主下載塊。
[0078]在本發(fā)明的實施例中,如果已完成下載任務的下載線程的下載塊為普通下載塊,為了避免下載內(nèi)容重合,則停止該普通下載塊作為主下載塊時所對應的加速下載塊,以完成下載。判斷下載塊是否為普通下載塊還是加速下載塊,可根據(jù)預設閾值判斷。如果已完成下載任務的下載線程對應下載塊為加速下載塊,則將多個加速下載塊對應的下載內(nèi)容合并至對應的主下載塊。[0079]在本發(fā)明的實施例中,下載控制子單元225還用于在根據(jù)關聯(lián)關系將加速下載塊的下載結果合并至加速下載塊對應的主下載塊之后,停止主下載塊所對應的加速下載塊。
[0080]在本發(fā)明的實施例中,在主下載塊對應的多個加速下載塊中,如果其中一個加速下載塊完成下載,則可停止其他的加速下載塊的下載。
[0081]本發(fā)明實施例的下載方法,通過對待下載文件進行分塊,結合普通下載快和加速下載塊對文件進行下載,有效地防止了個別連接響應過慢、導致線程阻塞的問題,提高了下載速度以及下載的流暢性,提升用戶下載體驗。
[0082]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬【技術領域】的技術人員所理解。
[0083]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設備取指令并執(zhí)行指令的系統(tǒng))使用,或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用。就本說明書而言,"計算機可讀介質(zhì)"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設備或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(R0M),可擦除可編輯只讀存儲器(EPR0M或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(⑶ROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
[0084]應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0085]本【技術領域】的普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
[0086]此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。
[0087]上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。[0088]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0089]盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領域的普通技術人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由權利要求及其等同限定。
【權利要求】
1.一種下載方法,其特征在于,包括以下步驟: 根據(jù)待下載文件的信息建立多個下載線程;以及 在所述多個下載線程中的一個下載線程完成下載任務之后,為所述已完成下載任務的下載線程建立新下載任務以協(xié)助所述多個下載線程中的其他下載線程進行下載。
2.如權利要求1所述的方法,其特征在于,所述根據(jù)待下載文件的信息建立多個下載線程進一步包括: 采用分塊算法將所述待下載文件分為多個普通下載塊,并根據(jù)所述多個普通下載塊建立分別對應的多個下載線程;以及 通過所述多個下載線程建立多個下載連接,以分別根據(jù)所述多個普通下載塊進行下載。
3.如權利要求1或2所述的方法,其特征在于,所述為所述已完成下載任務的下載線程建立新下載任務進一步包括: 獲取所述其他下載線程中預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程,并將所述預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程作為待協(xié)助下載線程;以及 根據(jù)所述待協(xié)助下載線程的未下載內(nèi)容建立所述已完成下載任務的下載線程的所述新下載任務。
4.如權利要求3所述的方法,其特征在于,所述根據(jù)待協(xié)助下載線程的未下載內(nèi)容建立所述已完成下載任務的下載線程的所述新下載任務進一步包括: 判斷所述待協(xié)助下載線程的未下載內(nèi)容的數(shù)據(jù)量是否小于預設閾值; 如果判斷小于所述預設閾值,則根據(jù)所述未下載內(nèi)容的起點建立加速下載塊;以及 如果判斷大于所述預設閾值,則利用所述分塊算法根據(jù)所述未下載內(nèi)容為所述已完成下載任務的下載線程建立新的普通下載塊。
5.如權利要求4所述的方法,其特征在于,在所述根據(jù)未下載內(nèi)容的起點建立加速下載塊之后,還包括: 將所述待協(xié)助下載線程的普通下載塊標記為主下載塊,并建立所述主下載塊與所述加速下載塊之間的關聯(lián)關系。
6.如權利要求5所述的方法,其特征在于,在所述一個下載線程完成下載任務之后,還包括: 如果所述已完成下載任務的下載線程的下載塊為普通下載塊,則根據(jù)所述關聯(lián)關系停止所述普通下載塊作為主下載塊時所對應的加速下載塊;以及 如果所述已完成下載任務的下載線程對應下載塊為加速下載塊,則根據(jù)所述關聯(lián)關系將所述加速下載塊的下載結果合并至所述加速下載塊對應的主下載塊。
7.如權利要求6所述的方法,其特征在于,在所述根據(jù)關聯(lián)關系將所述加速下載塊的下載結果合并至所述加速下載塊對應的主下載塊之后,還包括: 停止所述主下載塊所對應的加速下載塊。
8.一種下載裝置,其特征在于,包括: 下載線程建立模塊,用于根據(jù)待下載文件的信息建立多個下載線程;以及 協(xié)助下載模塊,用于在所述多個下載線程中的一個下載線程完成下載任務之后,為所述已完成下載任務的下載線程建立新下載任務以協(xié)助所述多個下載線程中的其他下載線程進行下載。
9.如權利要求8所述的裝置,其特征在于,所述下載線程建立模塊進一步包括: 劃分單元,用于采用分塊算法將所述待下載文件分為多個普通下載塊,并根據(jù)所述多個普通下載塊建立分別對應的多個下載線程;以及 第一下載單元,用于通過所述多個下載線程建立多個下載連接,以分別根據(jù)所述多個普通下載塊進行下載。
10.如權利要求8或9所述的裝置,其特征在于,所述協(xié)助下載模塊進一步包括: 獲取單元,用于獲取所述其他下載線程中預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程,并將所述預計剩余下載時間最長的和/或未下載內(nèi)容最多的下載線程作為待協(xié)助下載線程;以及 第二下載單元,用于根據(jù)所述待協(xié)助下載線程的未下載內(nèi)容建立所述已完成下載任務的下載線程的所述新下載任務。
11.如權利要求10所述的裝置,其特征在于,所述第二下載單元進一步包括: 判斷子單元,用于判斷所述待協(xié)助下載線程的未下載內(nèi)容的數(shù)據(jù)量是否小于預設閾值; 第一下載子單元,用于在所述判斷單元判斷小于所述預設閾值時,根據(jù)所述未下載內(nèi)容的起點建立加速下載塊;以及 第二下載子單元,用于在判斷`大于所述預設閾值時,利用所述分塊算法根據(jù)所述未下載內(nèi)容為所述已完成下載任務的下載線程建立新的普通下載塊。
12.如權利要求11所述的裝置,其特征在于,所述第二下載單元還包括: 關聯(lián)子單元,用于將所述待協(xié)助下載線程的普通下載塊標記為主下載塊,并建立所述主下載塊與所述加速下載塊之間的關聯(lián)關系。
13.如權利要求12所述的裝置,其特征在于,所述第二下載單元還包括: 下載控制子單元,用于在所述已完成下載任務的下載線程的下載塊為普通下載塊時,根據(jù)所述關聯(lián)關系停止所述普通下載塊作為主下載塊時所對應的加速下載塊,以及在所述已完成下載任務的下載線程對應下載塊為加速下載塊時,根據(jù)所述關聯(lián)關系將所述加速下載塊的下載結果合并至所述加速下載塊對應的主下載塊。
14.如權利要求13所述的裝置,其特征在于,所述下載控制子單元還用于在所述根據(jù)關聯(lián)關系將所述加速下載塊的下載結果合并至所述加速下載塊對應的主下載塊之后,停止所述主下載塊所對應的加速下載塊。
【文檔編號】G06F9/50GK103631569SQ201310718106
【公開日】2014年3月12日 申請日期:2013年12月23日 優(yōu)先權日:2013年12月23日
【發(fā)明者】文盛宏, 錢毅, 倪韶亮, 常峰 申請人:百度在線網(wǎng)絡技術(北京)有限公司