[发明专利]文件下载方法、装置及终端设备有效
申请号: | 201610015559.0 | 申请日: | 2016-01-08 |
公开(公告)号: | CN106961454B | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 张志毅 | 申请(专利权)人: | 阿里巴巴(中国)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 谢湘宁;张文华 |
地址: | 310052 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件 下载 方法 装置 终端设备 | ||
本发明提出一种文件下载方法、装置及终端设备。其中,所述方法包括:根据目标下载文件的信息,启动多个分段下载线程,分别下载所述目标下载文件的多个分段文件;当所述多个分段下载线程中的一个分段下载线程完成下载任务时,将剩余分段下载线程中未下载内容最多的分段下载线程或预计剩余下载时间最长的分段下载线程作为待协助分段下载线程;按照预定比例截取所述待协助分段下载线程中未下载内容作为尾部片段;启动所述已完成下载任务的分段下载线程下载所述尾部片段。本发明可以提高文件下载速度。
技术领域
本发明涉及计算机移动通信技术领域,具体而言,涉及一种文件下载方法、装置及终端设备。
背景技术
通过网络使用多线程进行文件下载时,目标文件分为多个分段文件被多个下载线程分别进行下载,下载后再合成一个完整的文件。由于系统在多线程调度运行的不确定性,多个下载线程去分别下载对应的分段文件时,并不能保证多个下载线程能够同时完成下载任务。在网络状况比较差的情况下,多个下载线程完成下载任务的时间点会相差很大,尤其在CPU性能较差的移动终端设备上,甚至还会出现一个下载线程还没开始下载,而另外一个下载线程已经完成下载任务的情况,因此,在网络状况或设备性能低等情况下,下载速度往往是非常慢的。
发明内容
本发明的目的在于提供一种文件下载方法、装置及终端设备,可以提高下载速度。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种文件下载方法,包括:根据目标下载文件的信息,启动多个分段下载线程,分别下载所述目标下载文件的多个分段文件;当所述多个分段下载线程中的一个分段下载线程完成下载任务时,将剩余分段下载线程中未下载内容最多的分段下载线程或预计剩余下载时间最长的分段下载线程作为待协助分段下载线程;按照预定比例截取所述待协助分段下载线程中未下载内容作为尾部片段;启动所述已完成下载任务的分段下载线程下载所述尾部片段。
进一步的,所述根据目标下载文件的信息,启动多个分段下载线程,分别下载所述目标下载文件的多个分段文件,包括:根据目标下载文件的信息,获取所述目标下载文件的文件大小;对所述目标下载文件进行文件分段处理,获得所述目标下载文件的多个分段文件;根据分段文件的数量分配多个分段下载线程;启动所述多个分配下载线程分别下载所述多个分段文件。
进一步的,所述按照预定比例截取所述待协助分段下载线程未下载内容的尾部片段之前,还包括:判断待协助分段下载线程未下载内容的数据量是否小于预设阈值,如果是,则直接由所述待协助分段下载线程下载未下载内容,否则,执行所述按照预定比例截取所述待协助分段下载线程中未下载内容。
进一步的,所述将剩余分段下载线程中未下载内容最多的分段下载线程或预计剩余下载时间最长的分段下载线程作为待协助分段下载线程之前,还包括:监听所有分段下载线程的下载状态以及下载中的分段文件的大小变化;判断是否有分段下载线程已完成下载任务;如果有分段下载线程已完成下载任务,则判断是否所有分段下载线程均已完成下载任务,如果没有完成,则执行将剩余分段下载线程中未下载内容最多的分段下载线程或预计剩余下载时间最长的分段下载线程作为待协助分段下载线程的步骤;如果没有分段下载线程已完成下载任务,返回监听的步骤。
进一步的,所述按照预定比例截取所述待协助分段下载线程中未下载内容作为尾部片段,包括:将所述待协助分段下载线程未下载内容按照二分法分为头部片段和尾部片段;截取所述尾部片段,分配给已完成下载任务的分段下载线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴(中国)有限公司,未经阿里巴巴(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610015559.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于TOSCA的服务调用方法及装置
- 下一篇:一种现场信息推送方法