万卷书   首页 > 电脑书籍 > 工具软件 >谈谈网络应用中的多线程技术
 
    (2)下载工具中的多线程技术

   多线程技术真正能够充分发挥其优势的领域是下载工具。

   经典的下载工具(更确切地说是一些著名下载工具的经典版本)都采用一个线程来下载软件。例如早期的Getright、GoZilla以及Net Vampire,以及浏览器本身的下载功能等等。但线程下载最大的问题就是,一旦网络出现繁忙状态,下载速度将变得很低。为了在网络拥挤的时候也能够较快地下载到一个软件,人们尝试采用多个链接来下载,即下载之前将要下载的软件分为几个部分(当然不是物理地分割,存放软件的服务器是不允许随便添加文件的),然后建立多个连接,每个连接负责下载一个部分。多个部分下载到计算机中以后再由下载程序合并起来。这就是所谓的多线程下载技术。多线程下载最大的优点在于能够地利用线路的带宽资源,在较短的时间内下载较多的数据,进而提高下载的效率。这就好比使用多辆车来运输一堆货物一样。如果一辆车需要往返两次,那么用两辆车则只要往返一次就可以了。

   由于多线程下载技术的优越性,现在几乎所有的新型下载工具都采用了这种技术。国内最早采用多线程下载技术的是网络蚂蚁(NetAnts),接着又出现了下载专家(DLExpert)、JetCar(现在已经改名为FlashGet了)等等。国外的多线程下载工具则有Alligator、Octopus、Download Accelerator Plus以及Download Wonder等等。可以说,如果不采用多线程下载技术,开发出的下载工具就没有前途。这已经成为众多下载工具开发人员的共识。

   不过有一点很令人遗憾,就是大家都只局限于盲从,而很少从理性上加以仔细地思考。这导致流行的多线程下载工具实际上大多数都徒有虚名。具体表现为实际的下载速度并不比单线程下载快多少。不信对比一下,使用网络蚂蚁和浏览器本身的下载功能来下载同样的软件,常常会发现浏览器的下载速度会比网络蚂蚁快。原因很简单,经典的多线程下载工具采用的是单目标的多线程下载技术,亦即不论建立多少个连接,这些连接都指向同一个远程服务器,一旦这个服务器出现繁忙状态,再多的连接也是无能为力。实际上,经典的多线程下载工具,其能力的发挥受到很多因素的限制。首先,远程服务器不能出现繁忙情况,其次,下载的线路要十分通畅而且宽敞。我们知道,多辆汽车挤在一条路上,到同一个目标地点去装载,有时候往往很难充分发挥运力。这就是为什么使用FlashGet或者NetAnts来下载,有时候的下载速度并不象人们所希望的那样快的根本原因。
上一页 WanJuanShu 下一页