多线程下载的原理就是首先建立一个SOCKET连接(HTTP或者FTP)获取要下载文件的长度,在内存或硬盘中创建相同大小的区域,建立相应数据结构,接着多开几个线程分别从不同的地方开始下载(HTTP的RANGE,FTP的REST命令应该都会吧),并把下载的数据填入区域,什么地方填了,什么地方没填,根据下载数据的长度,各段起点,很容易判断的。就是如此简单而已。