Urllib2问题的Python MultiThreading

时间:2009-10-31 15:31:36

标签: python multithreading sockets urllib

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

2 个答案:

答案 0 :(得分:3)

你能否确认在没有python的情况下同时下载相同数量的数据继续快速下载?也许问题不在于您的代码,而在于您的连接受到限制或者网站服务于文件。

如果这不是问题,您可以尝试使用pyprocessing库来实现多进程版本而不是多线程版本。如果您正在使用python 2.6,那么分发中包含的{pprocessing multiprocessing。将线程代码转换为多进程代码非常容易,所以如果只是通过线程来确认问题,那么值得一试。

答案 1 :(得分:1)

与建议的其他答案一样,问题可能出在您的连接或提供文件的网站上。如果您可以在本地针对测试服务器运行代码,那么您将能够消除此问题。

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

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

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