Java--多线程下载,断点续传技术原理
2017-08-15 00:00
106 查看
1.什么是线程?什么是进程?它们之间的关系?
可以参考之前的一篇文章:java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器简单说一个进程可以由多个线程组成,一个操作系统可以多个进程,它们都是可以同时进行工作的.
2.什么是下载?如何多线程进行下载?如何断点续传?
广义上说,凡是在屏幕上看到的不属于本地计算机上的内容,皆是通过"下载"得来。狭义上人们只认为那些自定义了下载文件的本地磁盘存储位置的操作才是"下载";。WEB下载方式分为HTTP与FTP两种类型,它们分别是Hyper Text Transportation Protocol(超文本传输协议)与File Transportation Protocol(文件传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的下载方式,该下载方式原理非常简单,就是用户两种规则(协议)和提供文件的服务器取得联系并将文件搬到自己的计算机中来,从而实现下载的功能。
多线程下载,即是一个文件能过多个线程进行下载;而断点续传说的是当一个文件下载到一半时突然由于某个原因下载中断了,比如突然电脑关机了,那么当再开机时已经下载到一半的文件不需要重头开始,而是接着下载;其原理很简单:首先,下载中断时记住上一个时点下载的位置,然后接着这个位置继续下载,这个继续下载可以是人手工触发的也可以是程序运行时自动识别进行下载的.
3.什么是RandomAccessFile?
RandomAccessFile的唯一父类是Object,与其他流父类不同。是用来访问那些保存数据记录的文件的,这样你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。RandomAccessFile的工作方式是,把DataInputStream和DataOutputStream粘起来,再加上它自己的一些方法,比如定位用的getFilePointer( ),在文件里移动用的seek( ),以及判断文件大小的length( )。此外,它的构造函数还要一个表示以只读方式("r"),还是以读写方式("rw")打开文件的参数 (和C的fopen( )一模一样)。它不支持只写文件,从这一点上看,假如RandomAccessFile继承了DataInputStream,它也许会干得更好。
所以,本例中是利用RandomAccessFile的seek记住上次的访问记录,然后接着上次的访问进行下载的.
RandomAccess直译过来是随机访问,这样理解很容易造成困扰,即然是随机的,那么又怎么来控制进度呢?
相关文章推荐
- 多线程下载和断点续传技术的实现原理。
- 很简单的Java断点续传实现原理
- Androidx学习笔记(43)--- 带断点续传的多线程下载(java项目)
- 多线程下载,断点续传原理解析和代码实现
- Java多线程下载并具断点续传功能JAR
- 图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理
- Java多线程下载框架01:多线程的好处以及断点续传原理
- Android学习(55) -- 带断点续传的多线程下载(Java)
- JAVA 实现 HTTP 断点续传及原理
- 多线程下载,断点续传技术要点---Http Header
- Java 远程通讯技术及原理分析
- Java中AWT、Swing与SWT三大GUI技术的原理与效率差异
- java web 服务器推送技术 comet实现(原理)
- Flex与java进行socket通信完成以断点续传方式的文件上传
- Java对象池技术的原理及其实现
- Android多线程断点续传原理解析
- Java远程通讯可选技术及原理(下)
- java 断点续传
- 断点 相关技术与原理(2)
- Java对象池技术的原理及其实现