[发明专利]一种文件下载方法、装置、设备及介质有效
申请号: | 201910982645.2 | 申请日: | 2019-10-16 |
公开(公告)号: | CN112671816B | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 赵安元 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L67/06 | 分类号: | H04L67/06 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 下载 方法 装置 设备 介质 | ||
本发明公开了一种文件下载方法、装置、设备及介质。所述方法包括:响应于接收到的下载请求,将待下载文件切分为至少两个分片文件;创建进度更新线程以及至少两个下载线程;利用所述下载线程执行对应的所述分片文件的下载任务;利用所述下载线程将任务进度消息发送给所述进度更新线程,所述任务进度消息表征所述下载任务的执行情况;利用所述进度更新线程更新所述待下载文件的下载进度。本发明可以保证下载任务的有效执行、保证下载进度的有效更新以及提高下载所述待下载文件的下载速度。
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种文件下载方法、装置、设备及介质。
背景技术
随着互联网通信技术的发展,给人们的日常生活和工作带来了越来越多的便利。人们可以在互联网上浏览到各种各样的信息,还可以根据自己的需求进行信息收集。在众多的信息收集方式中,文件下载是最常用的一种信息收集方式。
可以利用分片下载技术进行文件下载。比如将待下载文件平均分为n片,然后启动n个线程,每个线程下载其中一个分片。这些线程除了执行对对应分片的下载任务之外,还需要更新待下载文件的下载进度。例如每个线程下载部分内容之后,需要去进行下载进度的更新。如果多个线程同时进行下载进度的更新,就会出现由于线程同步原因造成的进度错误(比如一个线程的更新会被另一个线程的更新覆盖)。为解决该问题,现有技术中,当一个线程正在进行下载进度更新时,对下载进度对应的数据作加锁处理;更新完成之后再对下载进度对应的数据作释放锁处理。在数据被锁住期间,另一个线程只有等待锁释放之后才能对这个数据进行加锁并且操作。
然而,由于锁的引入,一旦出现锁混用就会有死锁(比如线程1持有锁1等待锁2,线程2持有锁2等待锁1,线程之间相互等待,对应的下载任务的执行出现卡住的情况)的隐患。同时,在加锁期间,对应的线程需要等待锁释放才能继续下载任务,会影响下载所述待下载文件的整体速度。因此,需要提供对待下载文件更有效的下载方案。
发明内容
为了解决现有技术应用在对文件进行下载时,下载速度慢、下载进度更新容易出现异常等问题,本发明提供了一种文件下载方法、装置、设备及介质:
一方面,本发明提供了一种文件下载方法,所述方法包括:
响应于接收到的下载请求,将待下载文件切分为至少两个分片文件;
创建进度更新线程以及至少两个下载线程;
利用所述下载线程执行对应的所述分片文件的下载任务;
利用所述下载线程将任务进度消息发送给所述进度更新线程,所述任务进度消息表征所述下载任务的执行情况;
利用所述进度更新线程更新所述待下载文件的下载进度。
另一方面提供了一种文件下载装置,所述装置包括:
切分模块:用于响应于接收到的下载请求,将待下载文件切分为至少两个分片文件;
线程创建模块:用于创建进度更新线程以及至少两个下载线程;
下载模块:用于利用所述下载线程执行对应的所述分片文件的下载任务;
消息发送模块:用于利用所述下载线程将任务进度消息发送给所述进度更新线程,所述任务进度消息表征所述下载任务的执行情况;
更新模块:用于利用所述进度更新线程更新所述待下载文件的下载进度。
另一方面提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述的文件下载方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910982645.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种星型聚酰胺及其用途
- 下一篇:一种洗衣机搅拌器及其洗衣机