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

  • 相关阅读:
    vivado 连接不上板子 There is no current hw_target
    excel 方框打钩
    2019新个税如何计算
    printf("loops %u / %u%c[K ", loops + 1, opts->loops, 27); printf("%cM", 27);
    HttpUtil
    Spring注入bean和aop的注意事项
    获取所有bean的名字
    不可见类有抽象父类,spring配置子类bean,注入父类,aop就可以切父类的方法
    实例/静态工厂方法得到bean
    注入抽象类的子类
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/5837316.html
Copyright © 2011-2022 走看看