#生产者消费者模型(单线程高并发)
1、低效率模式 产完在统一给
import timedef producter(): ret = [] for i in range(10): time.sleep(0.1) ret.append(i) return retdef consumer(res): for index,baozi in enumerate(res): time.sleep(0.1) print('第%s个人,吃了%s' %(index,baozi))res = producter()print(consumer(res))
2、高效率模式 产一个给一个
import timedef consumer(name): print('我是[%s],我在排队买包子' %name) while True: baozi = yield time.sleep(1) #模拟在achun在吃包子 print('%s很开心,%s很好吃' %(name,baozi))def producter(): population1 = consumer('achun') #生成器函数 population1.__next__() population2 = consumer('alin') # 生成器函数 population2.__next__() for i in range(10): time.sleep(1) #模拟在在做包子 population1.send('鲜肉菜包 %s' %i) population2.send('鲜肉菜包 %s' %i)producter()