最简单的从网络下载数据的程序方法为:下载一块数据,然后写入硬盘,接着再下载下一块
可以抽象为2个步骤:
1.GetBlockFromNet
2.WritBlockToDisk在单线程下这2个步骤是串行的。
若我们采用双线程下载,也就是上面2个过程并行进行:
线程A:读取数据块到内存缓存中
线程B:从缓存读取数据块写到硬盘若是单核CPU,这样能够加快下载的速度吗?
我的理解是,就算是2个线程,一个CPU进行调度,在逻辑上是并行的,物理上实际还是串行的啊。若是双核机器呢?

解决方案 »

  1.   

    貌似2两个线程下载是指有2个线程同时GetBlockFromNet
      

  2.   

    无论是单CPU还是多CPU,多线程肯定会提高下载速度的,因为你的瓶颈在网络下载上,如果让线程分块去下载的话,会提高下载速度。但是你得请求数据块时要分块下载,在http信息头中用From和to两个参数。
      

  3.   

    这里有个跨平台的下载库,支持HTTP,FTP,HTTPS,多线程下载,还能在手机上跑,你可以参考下
    http://www.easygeteasy.com