2009-10-31 71 views
3

我可以一次下载多个线程的速度很快,但问题是,几分钟后它会逐渐减慢到几乎完全停止,我不知道为什么。我的代码没有什么问题,我可以看到,而且我的RAM/CPU很好。我唯一能想到的就是urllib2没有正确处理大量的连接。如果有帮助,我使用代理服务器,但是我没有这个问题。有没有人对此问题有任何建议或见解?谢谢!Python多线程与Urllib2问题

回答

3

您是否确定在没有python的情况下同时进行下载的次数会继续快速下载?也许这个问题不在你的代码中,而是你的连接受到限制或者服务于这些文件的网站。

如果这不是问题,您可以尝试使用pyprocessing库来实现多进程版本而不是多线程版本。如果您使用的是python 2.6,则该分发包含的分步处理为multiprocessing。将线程代码转换为多进程代码非常容易,因此如果只是为了确认问题是否与线程有关,那么值得一试。

1

与其他答案一样,该问题可能与您的连接或提供文件的站点有关。如果你可以在本地运行测试服务器的代码,那么你将能够消除这种情况。

如果使用测试服务器时问题消失,则问题出在您的连接或远程服务器上。

如果使用测试服务器时问题仍然存在,那么它最像是代码中的某些东西,但是至少会有服务器日志让您更深入地了解正在发生的事情。

至于另一种可以探索的途径,this thread建议使用httplib2而不是urllib2。