【发布时间】:2011-10-06 12:42:57
【问题描述】:
我使用 python 来同时请求具有许多请求的 Web 服务。为此,我创建线程并使用 urllib(第一个版本,我使用 python 2.6)。 当我启动线程时,一切顺利,直到到达 ulllib.urlopen()。第二个线程必须等到第一个线程结束才能通过 ulllib.urlopen() 函数。由于我在从远程 Web 服务检索 Json 后做了很多工作,我希望第二个线程同时或在第一个线程关闭其套接字之后“urlopen”。
我尝试在收集返回的 JSON 后关闭打开的套接字,但它没有任何改变。第二个线程必须等待第一个线程结束。看看我用的是印刷品。
我可以理解 urllib 不是线程安全的(谷歌这并没有给出明确的答案)但是为什么第二个线程必须等待第一个结束(而不仅仅是套接字进程结束)?
感谢您的帮助和提示
PS:我不使用 Python 3 来兼容我需要的模块/包
【问题讨论】:
-
如果可能,请包含示例代码
标签: python multithreading urllib python-2.6