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])
python 协程库 gevent
最新推荐文章于 2024-05-11 08:20:17 发布