import requests,gevent,gevent.monkey
from multiprocessing import Pool
gevent.monkey.patch_socket()
url="http://www.xxx.cn"#替换了URL
def get_url(i):
print (i,requests.get(url).text[0:6])
taskes=[gevent.spawn(get_url,i) for i in range(10)]
def g():
gevent.joinall(taskes)
def run():
p=Pool(8)
for i in range(16):
p.apply_async(g,args=())
p.close()
p.join()
if __name__=="__main__":
run()
这段代码哪儿有问题?为什么把进程池16改成32,结果的输出数量仍然一样?
不清楚你的真实意图,为了等待gevents退出只要直接调用g()就可以了。
看你的代码,进程池中的进程所做的事情就是等待gevent退出,不管你用多少个进程执行效果都是一样的。