多线程加速下载的原理

多线程下载的步骤:

1.要知道服务端资源的大小。
        
            通过URLConnection请求服务器url获取。
            UrlConnection.getContentLength();//资源的大小
            
        2.在本地创建一个与服务端资源同样大小的一个文件(占位)
                //file :  文件; mode:文件的模式,rwd:直接写到底层设备,硬盘
                RandomAccessFile randomfile =new RandomAccessFile(File file,String mode)
                    
                randomfile.setLength(long size);//创建一个文件和服务器资源一样大小
                
        3.要分配每个线程下载文件的开始位置和结束位置。
                
        4.开启线程去执行下载
                通过UrlConnection下载部分资源。
                注意:
                 1.需要Range头,key:Range   value:bytes:0-499 
                        urlconnection.setRequestPropety("Range","bytes:0-499")
                 2.需要设置每个线程在本地文件的保存的开始位置
                        RandomAccessFile randomfile =new RandomAccessFile(File file,String mode)
                        randomfile.seek(int startPostion);//本次线程下载保存的开始位置。
                        
        5.要知道每个线程下载完毕。

时间: 2024-08-03 19:13:03

多线程加速下载的原理的相关文章

多线程加速下载的逻辑实现

为什么多线程能够加速下载?具体实现的过程是什么,要想开发多线程下载,我们需要做哪些编码工作?以下链接是对多线程加速下载的实现逻辑的分析和阐述,希望对多线程下载开发的朋友有所帮助! http://bbs.itcast.cn/thread-78486-1-1.html

Arch Linux之pacman调用axel多线程加速下载

转载自 奶牛博客 本来感觉Arch Linux用个国内的源就很给力了,可是到了学校移动的cmcc-edu超级不稳定,而且单线程速度就二三十k,无奈,开多线程下载.在Ubuntu下面可以用apt-fast来做加速,arch下面加速的方式很多,因为arch的pacman.conf文件提供了直接调用外部下载程序的功能.需要看文档的朋友可以参考  Improve Pacman Performance (提升pacman下载速度) 因为文中介绍了很多方法,奶牛就不熬述了,朋友们自己看,奶牛只说下axel调

【黑马Android】(07)多线程下载的原理/开源项目xutils/显示意图/隐式意图/人品计算器/开启activity获取返回值

多线程下载的原理 司马光砸缸,多开几个小水管,抢救小朋友. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import

多线程断点下载原理(java代码实例演示)

其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载,首先:你必须明白第一点,那么就是,什么是多线程下载,该知识点可以查看本博客上一篇文章,Android之多线程下载原理,断点下载呢,其实就是在这个的基础之上添加了一些东西,那么添加了什么东西了,现在来做一个详细的了解. 1.在下载的过程中,边下载,变用一个文件来记录下载的位置,也就是下载了多少的数据 1.创建文件 2.记录下载多少数据 3.存储数据 2.第二次下载的时候,就去读取文件中是否存有数据,读取上次下载的位置

java多线程断点下载原理(代码实例演示)

原文:http://www.open-open.com/lib/view/open1423214229232.html 其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载,首先:你必须明白第一点,那么就是,什么是多线程下载,该知识点可以查看本博客上一篇文章,Android之多线程下载原理,断点下载呢,其实就是在这个的基础之上添加了一些东西,那么添加了什么东西了,现在来做一个详细的了解. 1.在下载的过程中,边下载,变用一个文件来记录下载的位置,也就是下载了多少的数据

Android多线程断点续传下载原理及实现

这段时间看了看工作室的工具库的下载组件,发现其存在一些问题: 1.下载核心逻辑有 bug,在暂停下载或下载失败等情况时有概率无法顺利完成下载.2.虽然原来的设计是采用多线程断点续传的设计,但打了一下日志发现其实下载任务都是在同一个线程下串行执行,并没有起到加快下载速度的作用. 考虑到原来的代码并不复杂,因此对这部分下载组件进行了重写.这里记录一下里面的多线程断点续传功能的实现. 请查看完整的PDF版(更多完整项目下载.未完待续.源码.图文知识后续上传github.)可以点击关于我联系我获取完整P

Android实现网络多线程断点续传下载

本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多线程断点需要什么功能? 1.多线程下载, 2.支持断点. 使用多线程的好处:使用多线程下载会提升文件下载的速度.那么多线程下载文件的过程是: (1)首先获得下载文件的长度,然后设置本地文件的长度. HttpURLConnection.getContentLength();//获取下载文件的长度 Ra

Java之多线程断点下载的实现

RandomAccessFile类: 此类的实例支持对随机訪问文件的读取和写入.随机訪问文件的行为相似存储在文件系统中的一个大型 byte 数组. 存在指向该隐含数组.光标或索引,称为文件指针.输入操作从文件指针開始读取字节.并随着对字节的读取而前移此文件指针. 假设随机訪问文件以读取/写入模式创建,则输出操作也可用.输出操作从文件指针開始写入字节.并随着对字节的写入而前移此文件指针.写入隐含数组的当前末尾之后的输出操作导致该数组扩展.该文件指针能够通过 getFilePointer 方法读取.

Android多线程断点续传下载

这个月接到一个项目,要写一个像360助手一样的对于软件管理的APP:其中,遇到了一个问题:多线程断点下载 这个 ,由于之前没有写过这方面的应用功能.所以,不免要自学了.然后就在各个昂站上收索并整理了一下.跟大家分享一下,也能加深我在这方面的理解. 什么是多线程下载? 多线程下载其实就是迅雷,BT一些下载原理,通过多个线程同时和服务器连接,那么你就可以榨取到较高的带宽了,大致做法是将文件切割成N块,每块交给单独一个线程去下载,各自下载完成后将文件块组合成一个文件,程序上要完成做切割和组装的小算法