本發(fā)明總體上涉及文件下載技術領域,特別是涉及一種實現多線程間相互協助的下載方法和裝置以及計算設備。
背景技術:
下載速度是文件下載領域的基礎性能指標之一。為了更大程度地優(yōu)化使用網絡帶寬和服務器資源,目前普遍采用多線程分段下載機制。即,開多個線程同時并行去請求下載文件,每個線程都負責下載指定文件的部分內容,當所有線程都完成下載時,整個文件的全部內容就下載完成。
然而,在現有技術中,同一下載任務的多個線程之間相互獨立。具體地,每條線程僅負責分配給自己的任務部分,并不會去關心其他線程是否下載正常。如果某一條線程因故下載失敗或下載超時,縱使其他所有線程都順利完成下載,也會導致整個下載任務失敗或下載超時。
因此,需要一種能夠解決上述問題,由此提高下載成功率、提升下載速度的文件分段下載機制。
技術實現要素:
本發(fā)明的一個目的在于,提供一種多線程協助下載的下載優(yōu)化機制,使得成功完成下載的線程協助處于非正常下載狀態(tài)的其他線程完成下載,由此提高下載成功率,縮短下載總時長,提升下載速度。
為了實現上述目的,本發(fā)明的多線程協助下載方法和裝置,使得當前線程在完成下載后判斷其他相關線程是否處于正常下載狀態(tài),在判定其他相關線程下載異常的情況下,接管該線程負責的下載任務部分,利用當前線程自身直接下載與被接管線程對應的文件區(qū)間。
根據本發(fā)明的一個方面,提供了一種文件的多線程下載方法,其中待下載文件被劃分成多個文件區(qū)間,每個所述文件區(qū)間對應于一段下載線程,所述多線程下載方法包括:
狀態(tài)判斷步驟,用于在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài),其中所述下一線程是指與所述當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程;和
協助下載步驟,用于在判定所述下一線程處于非正常下載狀態(tài)的情況下,使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間,并停止且退出所述下一線程。
這里的后一個文件區(qū)間是指,按照文件區(qū)間劃分順序,當前線程下載完成的文件區(qū)間的順序后一個文件區(qū)間。
利用本方法,使得同一下載任務的多個下載線程之間不再相互獨立,成功完成所分配的下載內容的線程會去協助下載遇到問題的順序下一線程,由此提高下載成功率,縮短下載總時長,提升下載速度。
在本發(fā)明的一個實施例中,每段線程請求下載的文件區(qū)間是從該段線程對應的文件區(qū)間的起始位置直到所述待下載文件的末尾。在本發(fā)明進一步的實施例中,所述協助下載步驟還包括:在使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間的情況下,將所述當前線程的需下載大小增加所述下一線程對應的文件區(qū)間的大小。
利用本實施例,可以便于進行多線程協助下載,使得在必要時下載請求能夠返回整個文件的數據流,而無需重新發(fā)起一次網絡下載請求。
在本發(fā)明的一個實施例中,所述多線程下載方法還包括:重復執(zhí)行所述狀態(tài)判斷步驟和所述協助下載步驟,直到所述當前線程下載完成的文件區(qū)間已經是所述待下載文件的最后一個文件區(qū)間。
在本發(fā)明的一個實施例中,判斷下一線程是否處于非正常下載狀態(tài)包括:響應于確定所述下一線程沒有下載過任何文件數據,判定所述下一線程處于非正常下載狀態(tài)。
在本發(fā)明的一個實施例中,判斷下一線程是否處于非正常下載狀態(tài)包括:響應于確定所述下一線程已下載過文件數據且滿足以下條件中的任一個或多個的組合,而判定所述下一線程處于非正常下載狀態(tài):所述下一線程已下載的文件數據不超過該段線程需下載大小的特定比例;以及所述下一線程已下載的文件數據大小不超過預定閾值。
在本發(fā)明的一個實施例中,判斷下一線程是否處于非正常下載狀態(tài)還包括以下中的任一個或多個:判斷所述下一線程是否請求超時而無法下載對應的文件區(qū)間;判斷所述下一線程是否被網關劫持而無法下載對應的文件區(qū)間;以及判斷所述下一線程是否因請求超時而重試下載由此導致下載耗時超過預定時間。
根據本發(fā)明的另一個方面,提供了一種文件的多線程下載裝置,其中待下載文件被劃分成多個文件區(qū)間,每個所述文件區(qū)間對應于一段下載線程,所述多線程下載裝置包括:狀態(tài)判斷單元,用于在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài),其中所述下一線程是指與所述當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程;和協助下載單元,用于在判定所述下一線程處于非正常下載狀態(tài)的情況下,使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間,并停止且退出所述下一線程。
在本發(fā)明的一個實施例中,每段線程請求下載的文件區(qū)間是從該段線程對應的文件區(qū)間的起始位置直到所述待下載文件的末尾。在本發(fā)明進一步的實施例中,所述協助下載單元還包括:下載大小調整單元,用于在使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間的情況下,將所述當前線程的需下載大小增加所述下一線程對應的文件區(qū)間的大小。
在本發(fā)明的一個實施例中,所述多線程下載裝置還包括:重復使能單元,用于使得所述狀態(tài)判斷單元和所述協助下載單元重復操作,直到所述當前線程下載完成的文件區(qū)間已經是所述待下載文件的最后一個文件區(qū)間。
在本發(fā)明的一個實施例中,所述狀態(tài)判斷單元包括:用于響應于確定所述下一線程沒有下載過任何文件數據而判定所述下一線程處于非正常下載狀態(tài)的模塊。
在本發(fā)明的一個實施例中,所述狀態(tài)判斷單元包括:用于響應于確定所述下一線程已下載過文件數據且滿足以下條件中的任一個或多個的組合,而判定所述下一線程處于非正常下載狀態(tài)的裝置:所述下一線程已下載的文件數據不超過該段線程需下載大小的特定比例;以及所述下一線程已下載的文件數據大小不超過預定閾值。
在本發(fā)明的一個實施例中,所述狀態(tài)判斷單元還包括以下中的任一個或多個:第一狀態(tài)判斷模塊,用于判斷所述下一線程是否請求超時而無法下載對應的文件區(qū)間;第二狀態(tài)判斷模塊,用于判斷所述下一線程是否被網關劫持而無法下載對應的文件區(qū)間;以及第三狀態(tài)判斷模塊,用于判斷所述下一線程是否因請求超時而重試下載由此導致下載耗時超過預定時間。
根據本發(fā)明的又一個方面,提供了一種計算設備,包括:網絡接口,所述網絡接口使得所述計算設備能夠經由一個或多個網絡進行文件的多線程下載;存儲器,通過所述網絡接口下載的文件存儲在所述存儲器中;以及一個或多個處理器,與所述網絡接口和所述存儲器相連接,所述一個或多個處理器配置為將待下載文件劃分成多個文件區(qū)間,使得每個所述文件區(qū)間對應于一段下載線程,并執(zhí)行以下操作:在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài),其中所述下一線程是指與所述當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程;和在判定所述下一線程處于非正常下載狀態(tài)的情況下,使用所述當前線程直接下載與所述下一線程對應的文件區(qū)間,并停止且退出所述下一線程。
利用本發(fā)明的多線程協助下載方法和裝置及計算設備,使得當前線程在完成下載后判斷其他相關線程是否處于正常下載狀態(tài),在判定其他相關線程下載異常的情況下,接管該線程負責的下載任務部分,利用當前線程自身直接下載與被接管線程對應的文件區(qū)間,由此提高下載成功率,縮短下載總時長,提升下載速度。
附圖說明
通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
圖1是示出了根據本發(fā)明一實施例的計算設備的結構框圖。
圖2是示出了根據本發(fā)明一實施例的文件多線程下載方法的總流程圖。
圖3是示出了根據本發(fā)明一實施例的文件多線程下載裝置的功能框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應該理解,可以以各種形式實現本公開而不應被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整地傳達給本領域的技術人員。
如前所述,為了提高下載成功率,縮短下載總時長,本發(fā)明的多線程協助下載機制,使得當前線程在完成下載后判斷其他相關線程是否處于正常下載狀態(tài),在判定其他相關線程下載異常的情況下,接管該線程負責的下載任務部分,利用當前線程自身直接下載與被接管線程對應的文件區(qū)間。
下面將參照圖1至圖3來具體地描述本發(fā)明的實施例。圖1是示出了根據本發(fā)明一實施例的計算設備100的結構框圖。該計算設備100的部件包括但不限于網絡接口110、存儲器120以及一個或多個處理器130。處理器130與網絡接口110和存儲器120相連接。在本發(fā)明的一個實施例中,計算設備100的上述以及圖1中未示出的其他部件也可以彼此相連接,例如通過總線。應當理解,圖1所示的計算設備結構框圖僅僅是出于示例的目的,而不是對本發(fā)明范圍的限制。本領域技術人員可以根據需要,增添或替換其他部件。
計算設備100可以是任何類型的靜止或移動計算設備,包括移動計算機或移動計算設備(例如,平板計算機、個人數字助理、膝上型計算機、筆記本計算機、上網本等)、移動電話(例如,智能手機)、可佩戴的計算設備(例如,智能手表、智能眼鏡等)或其他類型的移動設備,或者諸如臺式計算機或PC的靜止計算設備。計算設備100還可以是移動式或靜止式的服務器。
網絡接口110使得計算設備100能夠經由一個或多個網絡通信。這些網絡的示例包括局域網(LAN)、廣域網(WAN)、個域網(PAN)或諸如因特網的通信網絡的組合。網絡接口110可以包括有線或無線的任何類型的網絡接口(例如,網絡接口卡(NIC))中的一個或多個,諸如IEEE 802.11無線局域網(WLAN)無線接口、全球微波互聯接入(Wi-MAX)接口、以太網接口、通用串行總線(USB)接口、蜂窩網絡接口、藍牙接口、近場通信(NFC)接口,等等。
通過網絡接口110下載的文件存儲在存儲器120中的指定位置。存儲器120可包括存儲文件形式或其他形式的內容的任何類型的存儲設備中的一個或多個,包括磁硬盤驅動器、固態(tài)硬驅、半導體存儲設備、閃存,或者能夠存儲程序指令或數字信息的任何其他計算機可讀可寫存儲介質。
處理器130能夠將待下載文件劃分成多個文件區(qū)間,使得每個文件區(qū)間對應于一段下載線程,并且使得成功完成下載的線程能夠協助處于非正常下載狀態(tài)的其他相關線程進行下載。需要指出的是,盡管在實踐中通常會將待下載文件等分,但所劃分的各文件區(qū)間的大小不必然均等,可以根據需要調整各條下載線程對應的文件區(qū)間的大小。
處理器130使得多線程協助下載的處理可以參見圖2。圖2示出了根據本發(fā)明一實施例的文件多線程下載方法200的總體流程圖。文件多線程下載方法200在某一線程下載完成對應的文件區(qū)間之后執(zhí)行。
方法200開始于步驟S210,如圖2所示,處理器130進行狀態(tài)判斷,具體地,在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài)。
這里所稱的下一線程是指與當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程。本文中的后一個文件區(qū)間是指,按照文件區(qū)間劃分順序,當前線程下載完成的文件區(qū)間的順序后一個文件區(qū)間。
在本發(fā)明的一個實施例中,下一線程的非正常下載狀態(tài)包括以下情形中的任一個或多個:下一線程因請求超時而無法下載對應的文件區(qū)間;下一線程因被網關劫持而無法下載對應的文件區(qū)間;以及下一線程因請求超時而重試下載由此導致下載耗時超過預定時間。
需要指出的是,本領域普通技術人員應當理解,可以應用本發(fā)明的非正常下載狀態(tài)不限于以上列出的情形,而是可以包括任何其他導致線程下載異常的情況。
在本發(fā)明的一個實施例中,為了避免重復下載相同的文件數據,優(yōu)選地,本發(fā)明的多線程協助下載機制適用于下一線程沒有下載過任何文件數據的情形。在本發(fā)明的一個實施例中,處理器130執(zhí)行步驟S210時,進一步判斷下一線程是否沒有下載過任何文件數據,并且僅響應于確定下一線程沒有下載過任何文件數據,而判定下一線程處于非正常下載狀態(tài)。
在此需要說明的是,盡管上述實施例中限定本發(fā)明的多線程協助下載機制應用于下一線程沒有下載過任何文件數據的情形,但是本領域普通技術人員應該理解,本發(fā)明的多線程協助下載機制也適用于下一線程已經下載了部分數據但沒有完成對應下載區(qū)間的情形。
在這種情形下,為了避免重復下載實質上造成下載效率下降,可以進一步考慮其他限制因素來決定適用本發(fā)明的條件,例如可以規(guī)定下一線程已下載的內容不超過該段線程需下載大小的特定比例(例如,10%),以及/或者可以規(guī)定下一線程已下載的大小不超過預定閾值(例如,1M),以及/或者可以規(guī)定僅當計算設備100處于無線網絡環(huán)境(例如,WiFi)時適用本發(fā)明。此外,還可以考慮當前平均下載速度和下載大小來預估下載時間,以作為時間維度上的約束條件。
在步驟S210中,若判定當前線程的下一線程處于正常下載狀態(tài),則意味著無需當前線程的下載協助,故而退出當前線程(步驟S220)。
若在步驟S210中判定下一線程處于非正常下載狀態(tài),則處理器130執(zhí)行協助下載步驟,即,使用當前線程直接下載與下一線程對應的文件區(qū)間,并停止且退出下一線程(步驟S230)。
在本發(fā)明的一個實施例中,優(yōu)選地,多線程下載方法200還包括文件區(qū)間判斷步驟S250。參見圖2,在步驟S250中,判斷當前線程下載完成的文件區(qū)間是否已經是待下載文件的最后一個文件區(qū)間。
若在步驟S250中判定,當前線程剛下載完成的文件區(qū)間已經是待下載文件的最后一個文件區(qū)間,則處理進行到步驟S220,退出當前線程。
若在步驟S250中判定,當前線程剛下載完成的文件區(qū)間并非待下載文件的最后一個文件區(qū)間,則處理繼續(xù)執(zhí)行狀態(tài)判斷步驟S210和協助下載步驟S230。
在上述實施例中,重復執(zhí)行狀態(tài)判斷步驟S210和協助下載步驟S230,直到當前線程剛下載完成的文件區(qū)間已經是待下載文件的最后一個文件區(qū)間(步驟S250中的“是”分支),由此退出當前線程,返回整個待下載文件,下載任務成功完成,方法200結束。
利用本方法,使得同一下載任務的多個下載線程之間不再相互獨立,成功完成所分配的下載內容的線程會去協助下載遇到問題的順序下一線程,由此提高下載成功率,縮短下載總時長,提升下載速度。
在本發(fā)明的一個實施例中,每段線程請求下載的文件區(qū)間是從該段線程對應的文件區(qū)間的起始位置直到待下載文件的末尾。在進一步的實施例中,協助下載步驟S230還可以包括調整線程的需下載文件大小的步驟,即,在使用當前線程直接下載與下一線程對應的文件區(qū)間的情況下,將當前線程的需下載大小增加下一線程對應的文件區(qū)間的大小。
例如,假定待下載文件大小為60Mb,分三段線程T1、T2和T3進行下載,每段對應于20Mb大小的文件區(qū)間。在本實施例中,T1請求下載文件區(qū)間A[0-結束],T2請求下載文件區(qū)間B[20Mb-結束],T3請求下載文件區(qū)間C[40Mb-結束],三段線程各自的需下載大小均為20Mb。
在現有技術中,多線程請求下載的文件區(qū)間都僅僅對應于其預定下載文件大小。仍以上面的示例為例,在現有技術中,T1的請求下載區(qū)間為A[0-20Mb],T2請求下載區(qū)間為B[20Mb-40Mb],T3請求下載區(qū)間為C[40Mb-60Mb]。因為每個請求只會返回請求的對應文件區(qū)間的數據流,所以在本實施例,為了便于進行多線程協助下載,每段線程請求的下載文件區(qū)間都是從其對應的起始位置直到文件末尾。
利用本實施例,使得在必要時下載請求能夠返回整個文件的數據流,而無需重新發(fā)起一次網絡下載請求。
為了更加清晰地闡述本發(fā)明的原理,下面將參照一具體實例來描述本發(fā)明的多線程協助下載機制的實現過程。
仍參照上述示例,即,待下載文件大小為60Mb,分三段線程T1、T2和T3進行下載,每段對應于20Mb大小的文件區(qū)間。線程T1請求下載文件區(qū)間A[0-結束],標識需下載大小為20Mb;線程T2請求下載文件區(qū)間B[20Mb-結束],標識需下載大小為20Mb;線程T3請求下載文件區(qū)間C[40Mb-結束],標識需下載大小為20Mb。
當T1下載完成20Mb時,若發(fā)現T2處于正常下載狀態(tài),則退出T1線程;若發(fā)現T2并未正常下載且未曾下載過任何數據,則觸發(fā)協助下載流程,通知T2結束下載,并更新T1的需下載大小20Mb為40Mb,T1繼續(xù)下載。
當T1下載完成40Mb時,若發(fā)現T3處于正常下載狀態(tài),則退出T1線程;若發(fā)現T3并未正常下載且未曾下載過任何數據,則再次觸發(fā)協助下載流程,通知T3結束下載,并更新T1的需下載大小40Mb為60Mb,T1繼續(xù)下載。
當T1下載完成60Mb時,發(fā)現已達到整個文件的大小了,下載任務成功并結束。
圖3出了根據本發(fā)明一實施例的文件多線程下載裝置300的功能框圖。多線程下載裝置300的功能模塊可以由實現本發(fā)明原理的硬件、軟件或硬件和軟件的結合來實現,例如通過圖1所示的計算設備100中的一個或多個處理器130來實現。本領域技術人員可以理解的是,圖3中所描述的功能模塊可以組合起來或者劃分成子模塊,從而實現上述發(fā)明的原理。因此,本文的描述可以支持對本文描述的功能模塊的任何可能的組合、或者劃分、或者更進一步的限定。
參照圖3,為了提高下載成功率,多線程下載裝置300被配置為包括狀態(tài)判斷單元310和協助下載單元330。待下載文件被劃分成多個文件區(qū)間,每個文件區(qū)間對應于一段下載線程。
狀態(tài)判斷單元310被配置為在當前線程正常下載完成時,判斷下一線程是否處于非正常下載狀態(tài)。這里所稱的下一線程是指與當前線程下載完成的文件區(qū)間的后一個文件區(qū)間相對應的下載線程。本文中的后一個文件區(qū)間是指,按照文件區(qū)間劃分順序,當前線程下載完成的文件區(qū)間的順序后一個文件區(qū)間。
在本發(fā)明的一個實施例中,狀態(tài)判斷單元310被配置為包括以下中的任一個或多個:第一狀態(tài)判斷模塊311,用于判斷下一線程是否請求超時而無法下載對應的文件區(qū)間;第二狀態(tài)判斷模塊313,用于判斷下一線程是否被網關劫持而無法下載對應的文件區(qū)間;以及第三狀態(tài)判斷模塊315,用于判斷下一線程是否因請求超時而重試下載由此導致下載耗時超過預定時間。
需要指出的是,本領域普通技術人員應當理解,可以應用本發(fā)明的非正常下載狀態(tài)不限于以上列出的情形,而是可以包括任何其他導致線程下載異常的情況。
在此需要指出的是,為了避免重復下載相同的文件數據,優(yōu)選地,本發(fā)明的多線程協助下載機制適用于下一線程沒有下載過任何文件數據的情形。在本發(fā)明的一個實施例中,狀態(tài)判斷單元310被配置為還包括用于響應于確定所述下一線程沒有下載過任何文件數據而判定所述下一線程處于非正常下載狀態(tài)的模塊。
在此需要說明的是,盡管上述實施例中限定本發(fā)明的多線程協助下載機制應用于下一線程沒有下載過任何文件數據的情形,但是本領域普通技術人員應該理解,本發(fā)明的多線程協助下載機制也適用于下一線程已經下載了部分數據但沒有完成對應下載區(qū)間的情形。
在這種情形下,為了避免重復下載實質上造成下載效率下降,可以進一步考慮其他限制因素來決定適用本發(fā)明的條件。在本發(fā)明的一個實施例中,狀態(tài)判斷單元310還可以被配置為包括:用于響應于確定下一線程已下載過文件數據且滿足以下條件中的任一個或多個的組合,而判定下一線程處于非正常下載狀態(tài)的裝置:下一線程已下載的文件數據不超過該段線程需下載大小的特定比例(例如,10%);以及下一線程已下載的文件數據大小不超過預定閾值(例如,1M)。此外,附加地或另選地,還可以規(guī)定僅當計算設備100處于無線網絡環(huán)境(例如,WiFi)時適用本發(fā)明。此外,還可以考慮當前平均下載速度和下載大小來預估下載時間,以作為時間維度上的約束條件。
在狀態(tài)判斷單元310判定下一線程處于非正常下載狀態(tài)的情況下,協助下載單元330被配置為使用當前線程直接下載與下一線程對應的文件區(qū)間,并停止且退出下一線程。
在本發(fā)明的一個實施例中,每段線程請求下載的文件區(qū)間是從該段線程對應的文件區(qū)間的起始位置直到待下載文件的末尾。在本發(fā)明進一步的實施例中,協助下載單元330被配置為還包括下載大小調整單元335,用于在使用當前線程直接下載與下一線程對應的文件區(qū)間的情況下,將當前線程的需下載大小增加下一線程對應的文件區(qū)間的大小。
在本發(fā)明的一個實施例中,多線程下載裝置300還包括重復使能單元350,配置為用于使得狀態(tài)判斷單元310和協助下載單元330重復操作,直到當前線程下載完成的文件區(qū)間已經是待下載文件的最后一個文件區(qū)間。
綜上所述,利用本發(fā)明的多線程協助下載方法和裝置及計算設備,使得當前線程在完成下載后判斷其他相關線程是否處于正常下載狀態(tài),在判定其他相關線程下載異常的情況下,接管該線程負責的下載任務部分,利用當前線程自身直接下載與被接管線程對應的文件區(qū)間,由此提高下載成功率,縮短下載總時長,提升下載速度。
此外,根據本發(fā)明的方法還可以實現為一種計算機程序,該計算機程序包括用于執(zhí)行本發(fā)明的上述方法中限定的上述各步驟的計算機程序代碼指令。或者,根據本發(fā)明的方法還可以實現為一種計算機程序產品,該計算機程序產品包括計算機可讀介質,在該計算機可讀介質上存儲有用于執(zhí)行本發(fā)明的上述方法中限定的上述功能的計算機程序。本領域技術人員還將明白的是,結合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實現為電子硬件、計算機軟件或兩者的組合。
附圖中的流程圖和框圖顯示了根據本發(fā)明的多個實施例的系統(tǒng)和方法的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現中,方框中所標記的功能也可以以不同于附圖中所標記的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現,或者可以用專用硬件與計算機指令的組合來實現。
以上已經描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋各實施例的原理、實際應用或對市場中的技術的改進,或者使本技術領域的其它普通技術人員能理解本文披露的各實施例。