2 luoyanhanhan luoyanhanhan 于 2016.09.13 10:00 提问

新手gevent某API用途问题
# -*- coding:utf-8 -*-
import gevent
from gevent import monkey, Greenlet
monkey.patch_all()
from gevent.pool import Pool
import requests
p = Pool(2)#设置并发数为2

def down(url):
    print url+' '+str(len(requests.get(url).content))

urls = ['http://www.baidu.com','http://www.163.com/']
urls2=['http://www.qq.com','http://www.ifeng.com/','http://www.sina.com.cn','http://www.sohu.com/']

for url in urls:
    p.spawn(down, url)

print 'size of pool is %s'%len(p)
p.join()
def buildurl():
    for i in urls2:
        gevent.sleep(0)
        p.spawn(down,str(i))
        print 'size of pool is %s'%len(p)

p.spawn(buildurl)

loop = gevent.core.loop()
loop.run()

个人结合网上思路实现的动态添加任务的代码,但是不明白最后两句gevent.core.loop().run()作用是什么?

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.09.13 23:08

就是让所有的协程都在loop中开始调度 需要有run来一直处理

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!