http://www.cnblogs.com/wendingding/p/3947550.html
1. 如何多线程下载文件
比起单线程下载,多线程同一时间段发出多个下载请求,每个下载请求负责下载一段内容,充分利用了网络宽带
a.获取文件的大小尺寸, 这关系到开启多少个下载线程,, 并不是越多越好,同时与cpu核数有关(这就导致有一些文档建议使用 CPU * 2 + 2 之类的规则来确定线程数量)
b.如何分工下载 (使用Range头控制)
c.如何存储,组织各个线程下载的文件碎片, 最后拼接成一个完成的
也可以创建一个等于目标文件大小的临时文件,然后下载对应的部分,这样就不需要进行拼接操作了,各部分都下载完成即可