一种基于Java的大文件下载加速方法技术

技术编号:24613215 阅读:25 留言:0更新日期:2020-06-24 01:00
本发明专利技术公开了一种基于Java的大文件下载加速方法,所述方法基于Java多线程技术,采用线程池技术,利用JUC包中的ForkJoinPool,均衡CPU的负载,把一个大文件分割成多个小文件进行下载,下载完成之后再重新合并成一个大文件。本发明专利技术方法具有以下突出的有益效果:1.通过JVM可用的处理器个数,保证CPU负载均衡;2.通过线程池做线程管理,保证了线程有效的执行;3.具有查看下载进度,监控内存的功能。

A method of large file download acceleration based on Java

【技术实现步骤摘要】
一种基于Java的大文件下载加速方法
本专利技术涉及Java/多线程
,涉及一种加速文件下载装置,具体提供一种基于Java的大文件下载加速方法。
技术介绍
现有的常用下载方式是基于浏览器的单线程下载。这种单线程下载的方式,是通过HTTP传输协议请求下载。一般而言,把需要下载的文件放在服务器的某个路径下,或者服务端通过数据库拼接文件,当客户端请求服务器进行下载的时候,服务端通过对应路径或者数据库拼接文件返回给客户端文件字节流。客户端进行格式整理,然后弹出下载窗口,浏览器自带的下载引擎进行下载。基于浏览器的单线程下载,或者说是计算整个文件的比特流下载,在一定程度上是简洁可靠的。这样下载的好处是能有效的保证可靠性。但同时,在某些情况下,因为网速的限制加上某些站点的限流政策,下载一个大文件往往是很困难的,因为文件容量太大,无论是传输字节流或者单线程的浏览器下载,对下载速度都会有很大的影响。
技术实现思路
本专利技术为了解决下载速度过慢的问题,提供一种基于Java的大文件下载加速方法,基于Java多线程技术,采用线程池技本文档来自技高网...

【技术保护点】
1.一种基于Java的大文件下载加速方法,其特征在于,所述方法基于Java多线程技术,采用线程池技术,利用JUC包中的ForkJoinPool,均衡CPU的负载,把一个大文件分割成多个小文件进行下载,下载完成之后再重新合并成一个大文件。/n

【技术特征摘要】
1.一种基于Java的大文件下载加速方法,其特征在于,所述方法基于Java多线程技术,采用线程池技术,利用JUC包中的ForkJoinPool,均衡CPU的负载,把一个大文件分割成多个小文件进行下载,下载完成之后再重新合并成一个大文件。


2.根据权利要求1所述的一种基于Java的大文件下载加速方法,其特征在于,所述方法的实现包括进程如下:
1)连接请求进程:连接远程HTTP,获取相关参数,保证稳定的HTTP请求连接;
2)文件处理进程:进行文件切割,文件合并;
3)任务进程:把文件处理成Java可执行的任务;
4)下载进程:进行下载管理;
5)汇报进程:汇报内存和下载进度情况。


3.根据权利要求2所述的一种基于Java的大文件下载加速方法,其特征在于,所述方法实现步骤包括:
1)指定下载文件;
2)创建线程池;
3)分割任务;
4)提交分割后的任务到线程池;
5)使用ForkJoinPool搭建框架图;
6)监控下载进度;
7)监控内存使用情况。


4.根据权利要求3所述的一种基于Java的大文件下载加速方法,其特征在于,所述线程池的核心线程数为JVM可用的处理器数量的2倍。


5.根据权...

【专利技术属性】
技术研发人员:张哲铭刘津许晓笛王昭宁
申请(专利权)人:山东汇贸电子口岸有限公司
类型:发明
国别省市:山东;37

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

1