python 协程库 gevent

import gevent
'''
    gevent 核心功能:协程编程
问:为什么需要gevent?
答:为了解决socket的IO阻塞问题,实现io多路复用,封装了协程。
问:gevent 的优势?
答:在现有代码不变的情况下实现协程开发。
    gevent他不需要你对代码进行大的变动,可以让现在的很多代码可以继续用。
'''
import random
#from gevent import monkey
#monkey.patch_all()  #猴子补丁,改变python的库,改成非阻塞的
import requests
from gevent.queue import Queue
'''
协程中的队列,在协程中实现通讯
'''
queue=Queue(3)
'''
问:这个队列为什么要给长度?
答:如果没有给长度,生产者不会阻塞会一直生产。
'''
def producer():

    while True:
        item = random.randint(0, 99)
        queue.put(item)
        print('生产者生产了一个',item)
    #gevent.sleep()
    '''
    问:gevent.sleep() 和 time.sleep() 的区别在哪?
    答:gevent.sleep() 模拟的是io阻塞
    '''
    #print('xxx')
def consumer():
    while True:
        item=queue.get()
        print('消费者消费:',item)
pro=gevent.spawn(producer)
con=gevent.spawn(consumer)
gevent.joinall([pro,con])

猜你喜欢

转载自blog.csdn.net/u012593871/article/details/79032905