2009-10-31 69 views
3

我可以一次下載多個線程的速度很快,但問題是,幾分鐘後它會逐漸減慢到幾乎完全停止,我不知道爲什麼。我的代碼沒有什麼問題,我可以看到,而且我的RAM/CPU很好。我唯一能想到的就是urllib2沒有正確處理大量的連接。如果有幫助,我使用代理服務器,但是我沒有這個問題。有沒有人對此問題有任何建議或見解?謝謝!Python多線程與Urllib2問題

回答

3

您是否確定在沒有python的情況下同時進行下載的次數會繼續快速下載?也許這個問題不在你的代碼中,而是你的連接受到限制或者服務於這些文件的網站。

如果這不是問題,您可以嘗試使用pyprocessing庫來實現多進程版本而不是多線程版本。如果您使用的是python 2.6,則該分發包含的分步處理爲multiprocessing。將線程代碼轉換爲多進程代碼非常容易,因此如果只是爲了確認問題是否與線程有關,那麼值得一試。

1

與其他答案一樣,該問題可能與您的連接或提供文件的站點有關。如果你可以在本地運行測試服務器的代碼,那麼你將能夠消除這種情況。

如果使用測試服務器時問題消失,則問題出在您的連接或遠程服務器上。

如果使用測試服務器時問題仍然存在,那麼它最像是代碼中的某些東西,但是至少會有服務器日誌讓您更深入地瞭解正在發生的事情。

至於另一種可以探索的途徑,this thread建議使用httplib2而不是urllib2。