#生产者消费者模型(单线程高并发)
1、低效率模式 产完在统一给
import time
def producter():
ret = []
for i in range(10):
time.sleep(0.1)
ret.append(i)
return ret
def consumer(res):
for index,baozi in enumerate(res):
time.sleep(0.1)
print('第%s个人,吃了%s' %(index,baozi))
res = producter()
print(consumer(res))
2、高效率模式 产一个给一个
import time
def 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()