Python gevent和Queue的问题
访问6个URL,怎么样才能开启两个gevent,当访问结束后,继续访问剩下的4个URL。
下面这段代码,访问两个URL后程序就结束了。
代码
# coding=utf-8
from gevent import monkey; monkey.patch_socket()
import gevent
import requests
import queue
q = queue.Queue()
def get_data(url):
print('GET: %s' %url)
resp = requests.get(url)
data = resp.text
print('%d bytes received from %s.' %(len(data), url))
q.put('http://www.baidu.com')
q.put('http://www.163.com')
q.put('http://www.sougou.com')
q.put('http://www.bing.com')
q.put('http://www.tudou.com')
q.put('http://www.v2ex.com')
gevent_list = []
for i in range(2):
gevent_list.append(
gevent.spawn(get_data, q.get_nowait())
)
gevent.joinall(gevent_list)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自己解决了,应该在
get_data
方法里面从队列中获取下面spawn的时候就不需要传参数了。