多线程下载方法和装置及计算设备制造方法及图纸

技术编号:14898275 阅读:96 留言:0更新日期:2017-03-29 13:30
本发明专利技术公开了一种文件多线程下载方法和装置及计算设备。所述方法包括:增设线程判断步骤,用于在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和新线程开启步骤,用于响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。利用本发明专利技术的多线程下载方法和装置及计算设备,通过在适当的情况下增设新线程,从而解决了多线程不同时下载完成造成的线程数越来越少而降低了下载速度的问题,使得尽可能合理地保持原有的线程数进行多线程下载,从而实现下载速度最大化,并同时保持下载速度稳定。

【技术实现步骤摘要】

本专利技术总体上涉及文件下载
,特别是涉及一种尽可能合理地保持原有线程数进行下载的方法和装置以及计算设备。
技术介绍
下载速度是文件下载领域的基础性能指标之一。为了更大程度地优化使用网络带宽和服务器资源由此达到下载速度最大化,目前普遍采用多线程分段下载机制。即,开多个线程同时并行去请求下载文件,每个线程都负责下载指定文件的部分内容,当所有线程都完成下载时,整个文件的全部内容就下载完成。然而,现有技术的这种分段算法只有在网络状况非常理想的情况下能实现下载速度的最大化。实际上,由于线上的网络环境和运行时客户端的内存性能的不可控,会导致每个分段线程的下载速度是不一样的,由此有些线程会先完成下载,有些会后完成下载。而且,待下载文件越大或网络带宽越小,各线程不同时下载完成的情况就越明显。这会使得,随着下载过程的进行,实际参与下载的线程数越来越少,造成了下载速度降低的情况。因此,需要一种能够解决上述问题,使得能够实现下载速度最大化、同时保持下载速度稳定的文件分段下载机制。
技术实现思路
本专利技术的一个目的在于,提供一种尽可能合理地保持原有线程数的多线程下载优化机制,使得在整个文件下载过程中都能够充分利用网络带宽和服务器资源,由此达到下载速度最大化,提升用户的下载体验。为了实现上述目的,本专利技术的多线程下载方法和装置,使得每当一条线程完成下载时,根据相关因素进行条件约束判断,并在满足条件的情况下开启一条新线程,并利用该新线程来承担当前未完成下载的线程的部分下载任务。根据本专利技术的一个方面,提供了一种文件的多线程下载方法,其中待下载文件被划分成N个文件区间,每个所述文件区间对应于一条下载线程Ti,其中i=1···N,N大于1,所述多线程下载方法包括:增设线程判断步骤,用于在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和新线程开启步骤,用于响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。利用本方法,解决了多线程分段下载时,不同线程因网络情况、内存性能等因素出现的不同时下载完成,造成的剩余下载时间里实际参与下载的线程数越来越少而降低了下载速度的问题,使得尽可能合理地保持原有的线程数进行多线程下载,由此实现下载速度最大化,并同时保持下载速度稳定。在本专利技术的一个实施例中,所述判断是否满足新线程增设条件的步骤包括:根据特定条件因素,来判断是否满足新线程增设条件,其中所述特定条件因素包括以下中的任一个或多个的组合:剩余下载大小Lm;所有N条线程在指定时间内的平均下载速度Sv;以及所有N条线程在请求网络连接时的平均连接耗时Cv。在本专利技术的一个实施例中,所述判断是否满足新线程增设条件的步骤还包括:获取所有未完成下载任务的线程各自的当前剩余下载大小;确定当前剩余下载大小最多的线程Tm;以及将所确定的线程Tm相应的当前剩余下载大小确定为所述剩余下载大小Lm。在本专利技术的一个实施例中,所述新线程增设条件包括以下中的任一项或多项:剩余下载大小Lm大于重分段阈值Lt;和理论剩余下载时间Ct大于理论最小加速时长Cs,其中,所述理论剩余下载时间Ct=剩余下载大小Lm/平均下载速度Sv,所述理论最小加速时长Cs与平均连接耗时Cv相关。在本实施例中,考虑了开启新线程的连接损耗和/或提速阈值,避免了在剩余下载量较小和/或剩余下载时间较短的情况下开启新线程,使得因连接耗时过长反而实际延长了总体下载时间。在本专利技术的一个实施例中,所述开启一条新线程并重新分配线程下载任务的步骤包括:将当前剩余下载大小最多的线程Tm的部分下载任务分配给所述新线程。在本专利技术进一步的实施例中,所述将当前剩余下载大小最多的线程Tm的部分下载任务分配给所述新线程的步骤包括:计算针对所述新线程的预留大小Ls=平均连接耗时Cv×平均下载速度Sv;和设定针对所述新线程的下载任务为(Lm-Ls)/2,并相应地调整所述线程Tm的下载区间。在本专利技术的一个实施例中,所述多线程下载方法还包括:重复执行所述增设线程判断步骤和所述新线程开启步骤,直到下载完成整个所述待下载文件。根据本专利技术的另一个方面,提供了一种文件的多线程下载装置,其中待下载文件被划分成N个文件区间,每个所述文件区间对应于一条下载线程Ti,其中i=1···N,N大于1,所述多线程下载装置包括:增设线程判断单元,配置为在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和新线程开启单元,配置为响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。在本专利技术的一个实施例中,所述增设线程判断单元进一步被配置为根据特定条件因素,来判断是否满足新线程增设条件,其中所述特定条件因素包括以下中的任一个或多个的组合:剩余下载大小Lm;所有N条线程在指定时间内的平均下载速度Sv;以及所有N条线程在请求网络连接时的平均连接耗时Cv。在本专利技术的一个实施例中,所述增设线程判断单元还包括:剩余下载大小获取模块,配置为获取所有未完成下载任务的线程各自的当前剩余下载大小;目标线程确定模块,配置为确定当前剩余下载大小最多的线程Tm;以及剩余下载大小确定模块,配置为将所确定的线程Tm相应的当前剩余下载大小确定为所述剩余下载大小Lm。在本专利技术的一个实施例中,所述新线程增设条件包括以下中的任一项或多项:剩余下载大小Lm大于重分段阈值Lt;和理论剩余下载时间Ct大于理论最小加速时长Cs,其中,所述理论剩余下载时间Ct=剩余下载大小Lm/平均下载速度Sv,所述理论最小加速时长Cs与平均连接耗时Cv相关。在本专利技术的一个实施例中,所述新线程开启单元包括:重分段模块,配置为将当前剩余下载大小最多的线程Tm的部分下载任务分配给所述新线程。在本专利技术进一步的实施例中,所述重分段模块包括:预留大小计算模块,配置为计算针对所述新线程的预留大小Ls=平均连接耗时Cv×平均下载速度Sv;和下载任务设置模块,配置为设定针对所述新线程的下载任务为(Lm-Ls)/2,并相应地调整所述线程Tm的下载区间。在本专利技术的一个实施例中,所述多线程下载装置还包括:重复使能单元,配置为使得所述增设线程判断单元和所述新线程开启单元重复操作,直到下载完成整个所述待下载文件。根据本专利技术的又一个方面,提供了一种计算设备,包括:网络接口,所述网络接口使得所述计算设备能够经由一个或多个网络进行文件的多线程下载;存储器,通过所述网络接口下载的文件存储在所述存储器中;以及一个或多个处理器,与所述网络接口和所述存储器相连接,所述一个或多个处理器配置为将待下载文件划分成多个文件区间,每个所述文件区间对应于一条下载线程,并执行以下操作:在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。利用本专利技术的多线程下载方法和装置及计算设备,使得每当一条线程完成下载时,根据相关因素进行条件约束判断,并在满足条件的情况下开启一条新线程,并利用该新线程来承担当前未完成下载的线程的部分下载任务,由此解决了多线程不同时下载完成造成的线程数越来越少而降低了下载速度的问题,使得尽可能合理地保持原有的线程数进行多线程下载,从而实现下载速度最大化,并同时保持下载速度稳定。附本文档来自技高网...
多线程下载方法和装置及计算设备

【技术保护点】
一种文件的多线程下载方法,其中待下载文件被划分成N个文件区间,每个所述文件区间对应于一条下载线程Ti,其中i=1···N,N大于1,所述多线程下载方法包括:增设线程判断步骤,用于在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和新线程开启步骤,用于响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。

【技术特征摘要】
1.一种文件的多线程下载方法,其中待下载文件被划分成N个文件区间,每个所述文件区间对应于一条下载线程Ti,其中i=1···N,N大于1,所述多线程下载方法包括:增设线程判断步骤,用于在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和新线程开启步骤,用于响应于判定满足所述新线程增设条件,开启一条新线程并重新分配线程下载任务。2.根据权利要求1所述的多线程下载方法,其中,所述判断是否满足新线程增设条件的步骤包括:根据特定条件因素,来判断是否满足新线程增设条件,其中所述特定条件因素包括以下中的任一个或多个的组合:剩余下载大小Lm;所有N条线程在指定时间内的平均下载速度Sv;以及所有N条线程在请求网络连接时的平均连接耗时Cv。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,所述多线程下载装置包括:增设线程判断单元,配置为在一条线程完成相应的下载任务而退出的情况下,判断是否满足新线程增设条件;和新线程开启单元,配置...

【专利技术属性】
技术研发人员:蔡灿
申请(专利权)人:广州优视网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1