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