# 生产者消费模型
import re
import time
def eat():
def producer(): # 生产
bun = []
for i in range(11):
bun.append(i)
time.sleep(1)
print(time.asctime(time.localtime(time.time()))) # 打印服务器时间
return bun
def consumption(bun): #消费
for n, nn in enumerate(bun):
if n >= 1:
print("第%s个人,吃了第%s个包子" % (n, nn))
time.sleep(1)
print(time.asctime(time.localtime(time.time()))) # 打印服务器时间
buns = producer()
consumption(buns)
# eat()
# yield相当与return的返回值
# x = yield 接受send传来的值,赋值给x
def eat_bun():
def producer(name):
print("我是[%s], 开始吃包子" % name)
while True:
bun = yield
time.sleep(1)
print('[%s] 很开心的把%s吃了' % (name, bun))
def consumption():
c1 = producer('1')
c2 = producer('2')
c1.__next__()
c2.__next__()
for i in range(10):
if i >= 1:
c1.send("[包子%s]" % i)
c2.send("[包子%s]" % i)
time.sleep(1)
consumption()
eat_bun()