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

  • 相关阅读:
    电脑快捷键大全
    js实现页面跳转
    List转换为字符串方法
    Bootstrap4显示和隐藏元素
    反向代理和正向代理区别
    springboot系列一:工作环境无法联网下快速搭建boot项目
    英语故事系列:冠状病毒传播或导致2020首季度全球经济出现萎缩
    BBS网站的制作
    Flask-SQLAlchemy数据库操作
    step-by-step install Nginx反向代理服务器(Ubuntu 18.04 LTS)(转)
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/5837316.html
Copyright © 2011-2022 走看看