日期:2014-05-20  浏览次数:20847 次

多线程下载速度反而更慢
我做是手机项目,尝试下载20M的文件,在wifi的网络环境下,单线程花的时间是5分18秒,双线程花的时间是6分46秒。
可能多线程时间会更长,请问是这是为什么?有什么方法可以提高下载速度吗?

------解决方案--------------------
1、网速有没有达到瓶颈
2、手机是不是多核,系统对多任务的支持度


------解决方案--------------------
也没差太多啊?
------解决方案--------------------
你多线程下载时采用的什么方式?预先文件填充数据么?有使用 Range 么?

你好像什么都没说,无能为力!
------解决方案--------------------
不预先填充的话,那用多个线程下回来的每一块数据怎么拼起来呢?
------解决方案--------------------
探讨

预先填充的话说白了就是先占坑。第一次 HTTP 请求时通过 Content-Length 获取资源的大小,预先创建一个这样大小的文件,先全部填充为字节 0

如果开启 5 个线程,文件大小是 1000 的话,那么 0~999 字节使用线程 1 通过 Range 去下载,1000~1999 字节依次类推。线程 1 从该文件 0 位置开始写入,线程 2 从该文件 1000 处开始写入。

------解决方案--------------------
换个双核手机试试[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/3.gif][/img]