#!/usr/bin/env python
# -*- coding:utf-8 -*-
from gevent import monkey;monkey.patch_all()#协程请求一定要这句,否则没有达到协程的效果,而是按顺序等待结果返回
import gevent
import requests
def f(url):
print('GET: %s '%url)
r=requests.get(url)
data=r.text
print(url,len(data))
gevent.joinall([
gevent.spawn(f,"https://www.taobao.com/"),
gevent.spawn(f,"https://www.python.org/"),
gevent.spawn(f,"https://www.baidu.com/"),
])
#gevent.spawn(方法名,传给方法的参数)
#以上的代码的意思是当请求的时候有结果返回的需要时间,当请求遇到等待的时候协程就会让他执行第二个方法
#当哪个方法请求的结果返回最快,就运行哪个方法请求之后的代码
#以此类推
#由下面的结果可以看出,请求baidu是最快的,python是最慢的
#以上代码输出的结果为
# GET: https://www.taobao.com/
# GET: https://www.python.org/
# GET: https://www.baidu.com/
# https://www.baidu.com/ 2443
# https://www.taobao.com/ 121811
# https://www.python.org/ 47700