日期:2014-05-16  浏览次数:20587 次

想写个FTP多线程下载工具但有几个实现细节问题
小弟准备写个linux下的多线程下载工具但不知道如何实现有几个疑问:  
多线程下载是创建多个线程然后每个线程分别创建自己的SOCKET连接到服务器中下载相应的文件段  
还是  
多个线程使用同一个连接分别下载相应文件段?
还有
文件写入的时候是各个线程自己写入文件中   还是通过统一的一个线程写入?哪个效率高?

------解决方案--------------------
使用多线程连接服务器,单线程写入文件,缓存数据,到达一定数目再交给写文件线程
------解决方案--------------------
使用多线程连接服务器\
==========================
是指创建多个线程然后分别connect到服务器再用帐号登入?

对,就是这样
------解决方案--------------------
> > 多线程下载是创建多个线程然后每个线程分别创建自己的SOCKET连接到服务器中下载相应的文件段
> > 还是
> > 多个线程使用同一个连接分别下载相应文件段?
多线程下载是创建多个线程然后每个线程分别创建自己的SOCKET连接到服务器中下载相应的文件段

> > 文件写入的时候是各个线程自己写入文件中 还是通过统一的一个线程写入?哪个效率高?
通过统一的一个线程写入,效率方面区别不大,主要是这种不存在多线程同时写文件的问题,结构简单,便于实现与维护。
建议:
主线程:处理界面,控制
N个线程:用于下载
文件线程:用于下载文件
------解决方案--------------------
多线程连接和下载,当线程写入文件。