关于java多线程 java的疑问,为何单步没问题的程序去除断点后运行就会有问题?

 annegu做了一个简单的Http多线程 java的下载程序来讨论一下多线程 java并发下载以及断点续传的问题。  
这个程序的功能就是可以分多个线程从目标地址上下载数据,每个线程负责丅载一部分并可以支持断点续传和超时重连。  
下载的方法是download()它接收两个参数,分别是要下载的页面的url和编码方式
在这个负责下載的方法中,主要分了三个步骤第一步是用来设置断点续传时候的一些信息的,第二步就是主要的分多线程 java来下载了最后是数据的合並。 
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

1,把阿里旺旺传到服务器上

2分3个线程,分别下载不同位置的文件

3用3个文件记录烸次下载的位置,停止后再次下载时直接从已下载的位置开始继续下载,当文件下载完成后删除记录的文件


测试成功下面是实现代码:

//记录线程下载文件标识,所有线程下载完成则文件下载完成 //1.获取文件大小创建一个和服务器文件对应的临时文件 //2.计算分配几个线程下載服务器资源,知道每个线程下载文件的位置 //3.开启多线程 java 开始位置:(线程id-1)* 每一块大小 结束位置:(线程id* 每一块大小)-1 //在客户端本地创建一个跟服务端大小一致的临时文件 //为支持断点续传终止或异常发生时,保存文件下载的最后位置下次继续下载时读取出来,从上次結束位置开始下载 //判断是否存在已下载的文件记录如果存在则开始位置 //当线程执行完后,表示文件下载完毕清除临时文件记录 * 读取txt文件的内容

我要回帖

更多关于 多线程 java 的文章

 

随机推荐