1.一种文件的多线程下载方法,其中待下载文件被划分成N个文件区间,每个所述文件区间对应于一条下载线程Ti,其中i=1···N,N大于1,所述多线程下载方法包括:
增设线程判断步骤,用于在一条线程完成相应的下载任务而退出的情况下,根据特定条件因素,来判断是否满足新线程增设条件,其中所述特定条件因素包括以下中的任一个或多个的组合:所有N条线程在指定时间内的平均下载速度Sv;以及所有N条线程在请求网络连接时的平均连接耗时Cv;和
新线程开启步骤,用于响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。
2.根据权利要求1所述的多线程下载方法,其中,所述特定条件因素还包括剩余下载大小Lm。
3.根据权利要求2所述的多线程下载方法,其中,所述判断是否满足新线程增设条件的步骤还包括:
获取所有未完成下载任务的线程各自的当前剩余下载大小;
确定当前剩余下载大小最多的线程Tm;以及
将所确定的线程Tm相应的当前剩余下载大小确定为所述剩余下载大小Lm。
4.根据权利要求3所述的多线程下载方法,其中,所述新线程增设条件包括以下中的任一项或多项:
剩余下载大小Lm大于重分段阈值Lt;和
理论剩余下载时间Ct大于理论最小加速时长Cs,其中,所述理论剩余下载时间Ct=剩余下载大小Lm/平均下载速度Sv,所述理论最小加速时长Cs与平均连接耗时Cv相关。
5.根据权利要求3或4所述的多线程下载方法,其中,所述开启一条新线程并重新分配线程下载任务的步骤包括:
将当前剩余下载大小最多的线程Tm的部分下载任务分配给所述新线程。
6.根据权利要求5所述的多线程下载方法,其中,所述将当前剩余下载大小最多的线程Tm的部分下载任务分配给所述新线程的步骤包括:
计算针对所述新线程的预留大小Ls=平均连接耗时Cv×平均下载速度Sv;和
设定针对所述新线程的下载任务为(Lm-Ls)/2,并相应地调整所述线程Tm的下载区间。
7.根据权利要求1至4中任一项所述的多线程下载方法,还包括:
重复执行所述增设线程判断步骤和所述新线程开启步骤,直到下载完成整个所述待下载文件。
8.一种文件的多线程下载装置,其中待下载文件被划分成N个文件区间,每个所述文件区间对应于一条下载线程Ti,其中i=1···N,N大于1,所述多线程下载装置包括:
增设线程判断单元,配置为在一条线程完成相应的下载任务而退出的情况下,根据特定条件因素,来判断是否满足新线程增设条件,其中所述特定条件因素包括以下中的任一个或多个的组合:所有N条线程在指定时间内的平均下载速度Sv;以及所有N条线程在请求网络连接时的平均连接耗时Cv;和
新线程开启单元,配置为响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。
9.根据权利要求8所述的多线程下载装置,其中,所述特定条件因素还包括剩余下载大小Lm。
10.根据权利要求9所述的多线程下载装置,其中,所述增设线程判断单元还包括:
剩余下载大小获取模块,配置为获取所有未完成下载任务的线程各自的当前剩余下载大小;
目标线程确定模块,配置为确定当前剩余下载大小最多的线程Tm;以及
剩余下载大小确定模块,配置为将所确定的线程Tm相应的当前剩余下载大小确定为所述剩余下载大小Lm。
11.根据权利要求10所述的多线程下载装置,其中,所述新线程增设条件包括以下中的任一项或多项:
剩余下载大小Lm大于重分段阈值Lt;和
理论剩余下载时间Ct大于理论最小加速时长Cs,其中,所述理论剩余下载时间Ct=剩余下载大小Lm/平均下载速度Sv,所述理论最小加速时长Cs与平均连接耗时Cv相关。
12.根据权利要求10或11所述的多线程下载装置,其中,所述新线程开启单元包括:
重分段模块,配置为将当前剩余下载大小最多的线程Tm的部分下载任务分配给所述新线程。
13.根据权利要求12所述的多线程下载装置,其中,所述重分段模块包括:
预留大小计算模块,配置为计算针对所述新线程的预留大小Ls=平均连接耗时Cv×平均下载速度Sv;和
下载任务设置模块,配置为设定针对所述新线程的下载任务为(Lm-Ls)/2,并相应地调整所述线程Tm的下载区间。
14.根据权利要求8至11中任一项所述的多线程下载装置,还包括:
重复使能单元,配置为使得所述增设线程判断单元和所述新线程开启单元重复操作,直到下载完成整个所述待下载文件。
15.一种计算设备,包括:
网络接口,所述网络接口使得所述计算设备能够经由一个或多个网络进行文件的多线程下载;
存储器,通过所述网络接口下载的文件存储在所述存储器中;以及
一个或多个处理器,与所述网络接口和所述存储器相连接,所述一个或多个处理器配置为将待下载文件划分成多个文件区间,每个所述文件区间对应于一条下载线程,并执行以下操作:
在一条线程完成相应的下载任务而退出的情况下,根据特定条件因素,来判断是否满足新线程增设条件,其中所述特定条件因素包括以下中的任一个或多个的组合:所有N条线程在指定时间内的平均下载速度Sv;以及所有N条线程在请求网络连接时的平均连接耗时Cv;和
响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。