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

技术编号:14938916 阅读:108 留言:0更新日期:2017-04-01 00:57
本发明专利技术公开了一种文件多线程下载方法和装置及计算设备。待下载文件被划分成多个文件区间,每个所述文件区间对应于一段下载线程,所述方法包括:在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和在判定所述下一线程处于非正常下载状态的情况下,使用所述当前线程直接下载与所述下一线程对应的文件区间,并停止且退出所述下一线程。本发明专利技术的多线程协助下载机制,使得成功完成下载任务的当前线程协助处于非正常下载状态的其他相关线程进行下载,由此提高下载成功率,缩短下载总时长,提升下载速度。

【技术实现步骤摘要】

本专利技术总体上涉及文件下载
,特别是涉及一种实现多线程间相互协助的下载方法和装置以及计算设备。
技术介绍
下载速度是文件下载领域的基础性能指标之一。为了更大程度地优化使用网络带宽和服务器资源,目前普遍采用多线程分段下载机制。即,开多个线程同时并行去请求下载文件,每个线程都负责下载指定文件的部分内容,当所有线程都完成下载时,整个文件的全部内容就下载完成。然而,在现有技术中,同一下载任务的多个线程之间相互独立。具体地,每条线程仅负责分配给自己的任务部分,并不会去关心其他线程是否下载正常。如果某一条线程因故下载失败或下载超时,纵使其他所有线程都顺利完成下载,也会导致整个下载任务失败或下载超时。因此,需要一种能够解决上述问题,由此提高下载成功率、提升下载速度的文件分段下载机制。
技术实现思路
本专利技术的一个目的在于,提供一种多线程协助下载的下载优化机制,使得成功完成下载的线程协助处于非正常下载状态的其他线程完成下载,由此提高下载成功率,缩短下载总时长,提升下载速度。为了实现上述目的,本专利技术的多线程协助下载方法和装置,使得当前线程在完成下载后判断其他相关线程是否处于正常下载状态,在判定其他相关线程下载异常的情况下,接管该线程负责的下载任务部分,利用当前线程自身直接下载与被接管线程对应的文件区间。根据本专利技术的一个方面,提供了一种文件的多线程下载方法,其中待下载文件被划分成多个文件区间,每个所述文件区间对应于一段下载线程,所述多线程下载方法包括:状态判断步骤,用于在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和协助下载步骤,用于在判定所述下一线程处于非正常下载状态的情况下,使用所述当前线程直接下载与所述下一线程对应的文件区间,并停止且退出所述下一线程。这里的后一个文件区间是指,按照文件区间划分顺序,当前线程下载完成的文件区间的顺序后一个文件区间。利用本方法,使得同一下载任务的多个下载线程之间不再相互独立,成功完成所分配的下载内容的线程会去协助下载遇到问题的顺序下一线程,由此提高下载成功率,缩短下载总时长,提升下载速度。在本专利技术的一个实施例中,每段线程请求下载的文件区间是从该段线程对应的文件区间的起始位置直到所述待下载文件的末尾。在本专利技术进一步的实施例中,所述协助下载步骤还包括:在使用所述当前线程直接下载与所述下一线程对应的文件区间的情况下,将所述当前线程的需下载大小增加所述下一线程对应的文件区间的大小。利用本实施例,可以便于进行多线程协助下载,使得在必要时下载请求能够返回整个文件的数据流,而无需重新发起一次网络下载请求。在本专利技术的一个实施例中,所述多线程下载方法还包括:重复执行所述状态判断步骤和所述协助下载步骤,直到所述当前线程下载完成的文件区间已经是所述待下载文件的最后一个文件区间。在本专利技术的一个实施例中,判断下一线程是否处于非正常下载状态包括:响应于确定所述下一线程没有下载过任何文件数据,判定所述下一线程处于非正常下载状态。在本专利技术的一个实施例中,判断下一线程是否处于非正常下载状态包括:响应于确定所述下一线程已下载过文件数据且满足以下条件中的任一个或多个的组合,而判定所述下一线程处于非正常下载状态:所述下一线程已下载的文件数据不超过该段线程需下载大小的特定比例;以及所述下一线程已下载的文件数据大小不超过预定阈值。在本专利技术的一个实施例中,判断下一线程是否处于非正常下载状态还包括以下中的任一个或多个:判断所述下一线程是否请求超时而无法下载对应的文件区间;判断所述下一线程是否被网关劫持而无法下载对应的文件区间;以及判断所述下一线程是否因请求超时而重试下载由此导致下载耗时超过预定时间。根据本专利技术的另一个方面,提供了一种文件的多线程下载装置,其中待下载文件被划分成多个文件区间,每个所述文件区间对应于一段下载线程,所述多线程下载装置包括:状态判断单元,用于在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和协助下载单元,用于在判定所述下一线程处于非正常下载状态的情况下,使用所述当前线程直接下载与所述下一线程对应的文件区间,并停止且退出所述下一线程。在本专利技术的一个实施例中,每段线程请求下载的文件区间是从该段线程对应的文件区间的起始位置直到所述待下载文件的末尾。在本专利技术进一步的实施例中,所述协助下载单元还包括:下载大小调整单元,用于在使用所述当前线程直接下载与所述下一线程对应的文件区间的情况下,将所述当前线程的需下载大小增加所述下一线程对应的文件区间的大小。在本专利技术的一个实施例中,所述多线程下载装置还包括:重复使能单元,用于使得所述状态判断单元和所述协助下载单元重复操作,直到所述当前线程下载完成的文件区间已经是所述待下载文件的最后一个文件区间。在本专利技术的一个实施例中,所述状态判断单元包括:用于响应于确定所述下一线程没有下载过任何文件数据而判定所述下一线程处于非正常下载状态的模块。在本专利技术的一个实施例中,所述状态判断单元包括:用于响应于确定所述下一线程已下载过文件数据且满足以下条件中的任一个或多个的组合,而判定所述下一线程处于非正常下载状态的装置:所述下一线程已下载的文件数据不超过该段线程需下载大小的特定比例;以及所述下一线程已下载的文件数据大小不超过预定阈值。在本专利技术的一个实施例中,所述状态判断单元还包括以下中的任一个或多个:第一状态判断模块,用于判断所述下一线程是否请求超时而无法下载对应的文件区间;第二状态判断模块,用于判断所述下一线程是否被网关劫持而无法下载对应的文件区间;以及第三状态判断模块,用于判断所述下一线程是否因请求超时而重试下载由此导致下载耗时超过预定时间。根据本专利技术的又一个方面,提供了一种计算设备,包括:网络接口,所述网络接口使得所述计算设备能够经由一个或多个网络进行文件的多线程下载;存储器,通过所述网络接口下载的文件存储在所述存储器中;以及一个或多个处理器,与所述网络接口和所述存储器相连接,所述一个或多个处理器配置为将待下载文件划分成多个文件区间,使得每个所述文件区间对应于一段下载线程,并执行以下操作:在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和在判定所述下一线程处于非正常下载状态的情况下,使用所述当前线程直接下载与所述下一线程对应的文件区间,并停止且退出所述下一线程。利用本专利技术的多线程协助下载方法和装置及计算设备,使得当前线程在完成下载后判断其他相关线程是否处于正常下载状态,在判定其他相关线程下载异常的情况下,接管该线程负责的下载任务部分,利用当前线程自身直接下载与被接管线程对应的文件区间,由此提高下载成功率,缩短下载总时长,提升下载速度。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1是示出了根据本专利技术一实施例的计算设备的结构框图。图2是示出了根据本专利技术一实施例本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201611062584.html" title="多线程下载方法和装置及计算设备原文来自X技术">多线程下载方法和装置及计算设备</a>

【技术保护点】
一种文件的多线程下载方法,其中待下载文件被划分成多个文件区间,每个所述文件区间对应于一段下载线程,所述多线程下载方法包括:状态判断步骤,用于在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和协助下载步骤,用于在判定所述下一线程处于非正常下载状态的情况下,使用所述当前线程直接下载与所述下一线程对应的文件区间,并停止且退出所述下一线程。

【技术特征摘要】
1.一种文件的多线程下载方法,其中待下载文件被划分成多个文件区间,每个所述文件区间对应于一段下载线程,所述多线程下载方法包括:状态判断步骤,用于在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和协助下载步骤,用于在判定所述下一线程处于非正常下载状态的情况下,使用所述当前线程直接下载与所述下一线程对应的文件区间,并停止且退出所述下一线程。2.根据权利要求1所述的多线程下载方法,其中,每段线程请求下载的文件区间是从该段线程对应的文件区间的起始位置直到所述待下载文件的末尾。3.根据权利要求2所述的多线程下载方法,其中,所述协助下载步骤还包括:在使用所述当前线程直接下载与所述下一线程对应的文件区间的情况下,将所述当前线程的需下载大小增加所述下一线程对应的文件区间的大小。4.根据权利要求1至3中任一项所述的多线程下载方法,还包括:重复执行所述状态判断步骤和所述协助下载步骤,直到所述当前线程下载完成的文件区间已经是所述待下载文件的最后一个文件区间。5.根据权利要求1至3中任一项所述的多线程下载方法,其中,判断下一线程是否处于非正常下载状态还包括以下中的任一个或多个:判断所述下一线程是否请求超时而无法下载对应的文件区间;判断所述下一线程是否被网关劫持而无法下载对应的文件区间;以及判断所述下一线程是否因请求超时而重试下载由此导致下载耗时超过预定时间。6.根据权利要求1至3中任一项所述的多线程下载方法,其中,判断下一线程是否处于非正常下载状态包括:响应于确定所述下一线程没有下载过任何文件数据,判定所述下一线程处于非正常下载状态。7.根据权利要求1至3中任一项所述的多线程下载方法,其中,判断下一线程是否处于非正常下载状态包括:响应于确定所述下一线程已下载过文件数据且满足以下条件中的任一个或多个的组合,而判定所述下一线程处于非正常下载状态:所述下一线程已下载的文件数据不超过该段线程需下载大小的特定比例;以及所述下一线程已下载的文件数据大小不超过预定阈值。8.一种文件的多线程下载装置,其中待下载文件被划分成多个文件区间,每个所述文件区间对应于一段下载线程,所述多线程下载装置包括:状态判断单元,用于在当前线程正常下载完成时,判断下一线程是否处于非正常下载状态,其中所述下一线程是指与所述当前线程下载完成的文件区间的后一个文件区间相对应的下载线程;和协助下载单元,用于在判定所述下一线程处于非正常下载状态...

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

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

1