zoukankan      html  css  js  c++  java
  • 多线程加速下载的原理

    多线程下载的步骤:

            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.要知道每个线程下载完毕。

  • 相关阅读:
    java反射机制
    Java注解的使用
    C3P0数据库Jar包的使用
    异常处理
    集合的概念
    程序员必备之二分查找
    ArrayList的使用
    HashMap的使用
    Final的使用
    类的基本结构
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/5837316.html
Copyright © 2011-2022 走看看