A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李建雄 黑马帝   /  2011-10-29 11:45  /  1928 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

视频上讲,RanomAcceesFile类时,有讲到他的运用,有一部分是多线程下载的依据

我想,当下载时,可以启动多外线程,建多个RanomAcceesFile类,往一个文件下载,

但是在下载源处,他是怎么把源切割的呢?

如何确定源有多大,

当每个线程下载完后,还是原样的文件吗?是不是还有要用其他的技术?

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

1 个回复

倒序浏览
线程可以理解为下载的通道,一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器会对总下载线程进行平均分配。不难理解,如果你线程多的话,那下载的越快。现流行的下载软件都支持多线程。例如原来有10个用户都通过单一线程与服务器相连,服务器的总带宽假设为56Kbps,则每个用户(每个线程)分到的带宽是5.6Kbps,即0.7K字节/秒。如果你同时打开两个线程与服务器连接,那么共有11个线程与服务器连接,而你获得的带宽将是56/11*2=10.2Kbps,约1.27K字节/秒,将近原来的两倍。你同时打开的线程越多,你所获取的带宽就越大(原来是这样,以后每次我都通过1K个线程连接:P)。当然,这种情况下占用的机器资源也越多。有些号称“疯狂下载”的下载工具甚至可以同时打开100个线程连接服务器。

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马