- 8
- 0
- 约6.12千字
- 约 6页
- 2017-06-17 发布于湖北
- 举报
JavaSE 实现多线程下载
多线程下载原理
多线程下载就是将同一个网络上的原始文件根据线程个数分成均等份,然后每个单独的线程下载对应的一部分,然后再将下载好的文件按照原始文件的顺序“拼接”起来就构成了完整的文件了。这样就大大提高了文件的下载效率。
多线程下载大致可分为以下几个步骤:一、获取服务器上的目标文件的大小
显然这一步是需要先访问一下网络,只需要获取到目标文件的总大小即可。目的是为了计算每个线程应该分配的下载任务。
二、计算每个线程下载的起始位置和结束位置我们可以把原始文件当成一个字节数组,每个线程只下载该“数组”的指定起始位置和指定结束位置
之间的部分。在第一步中我们已经知道了“数组”的总长度。因此只要再知道总共开启的线程的个数就好计算每个线程要下载的范围了。
每个线程需要下载的字节个数(blockSize)=总字节数(totalSize)/线程数(threadCount)。假设给线程按照 0,1,2,3...n 的方式依次进行编号,那么第 n 个线程下载文件的范围为:
起始脚标 startIndex=n*blockSize。
结束脚标 endIndex=(n-1)*blockSize-1。
考虑到 totalSize/threadCount 不一定能整除,因此对已最后一个线程应该特殊处理,最后一个线程的起始脚标计算公式不变,但是结束脚标 endIndex=totalS
您可能关注的文档
最近下载
- 胡椒醛安全技术说明书(MSDS).pdf VIP
- 2022年。四年级下册期中考试。.docx VIP
- (2021年)湖南省株洲市辅警协警笔试笔试真题(含答案).docx VIP
- 呼吸道感染的流行病学分析.pdf VIP
- 入团积极分子培养考察表(2025年版).docx VIP
- 学校中层管理岗位选聘与考核管理方案(2026年修订版).docx
- 中国医师药师临床指南第2版pdf.pptx VIP
- 吉林省题库建设指导手册(试行)+目录.pdf VIP
- 2025年咨询工程师(投资)考试《工程项目组织与管理》真题及答案解析【完20256.pdf VIP
- 第七章+第四节++长江经济带的协同发展+课件2025-2026学年+湘教版地理八年级下册.pptx VIP
原创力文档

文档评论(0)