想写个FTP多线程下载工具但有几个实现细节问题
小弟准备写个linux下的多线程下载工具但不知道如何实现有几个疑问:
多线程下载是创建多个线程然后每个线程分别创建自己的SOCKET连接到服务器中下载相应的文件段
还是
多个线程使用同一个连接分别下载相应文件段?
还有
文件写入的时候是各个线程自己写入文件中 还是通过统一的一个线程写入?哪个效率高?
------解决方案--------------------使用多线程连接服务器,单线程写入文件,缓存数据,到达一定数目再交给写文件线程
------解决方案--------------------使用多线程连接服务器\
==========================
是指创建多个线程然后分别connect到服务器再用帐号登入?
对,就是这样
------解决方案--------------------> > 多线程下载是创建多个线程然后每个线程分别创建自己的SOCKET连接到服务器中下载相应的文件段
> > 还是
> > 多个线程使用同一个连接分别下载相应文件段?
多线程下载是创建多个线程然后每个线程分别创建自己的SOCKET连接到服务器中下载相应的文件段
> > 文件写入的时候是各个线程自己写入文件中 还是通过统一的一个线程写入?哪个效率高?
通过统一的一个线程写入,效率方面区别不大,主要是这种不存在多线程同时写文件的问题,结构简单,便于实现与维护。
建议:
主线程:处理界面,控制
N个线程:用于下载
文件线程:用于下载文件
------解决方案--------------------多线程连接和下载,当线程写入文件。