#gevent 通过greenlet 实现协程, 核心就是遇到IO操作的时候, 相互切换 ,可以省时间,比如说一个程序正在访问, url等待服务器返回, 这个时候cpu是空闲的, 跳转出来做别的事情, 就可以省时间
from greenlet import greenlet
import random
import time
def Producer():
while True:
item = random.randint(0,9)
print("生产了{}".format(item))
c.switch(item) #切换到c
time.sleep(1)
def consumer():
print("我先执行")
while True:
item = p.switch() #切换到p (p是 Producer), 切的时候返回一个参数,返回一个返回值item
print("消费了{}".format(item))
c = greenlet(consumer) #因为是切换到consumer 所以参数是consumer
p = greenlet(Producer)
c.switch() #这个是程序的入口, 因为所以先打印 我先执行