#!/usr/bin/env python
#-*- coding:utf-8 -*-
#实现生产和吃包子
#具体功能用函数实现
# import time
# def producer():
# ret = []
# for i in range(10):
# time.sleep(1)
# ret.append('包子%s'%i)
# return ret
# def consumer(res):
# for index,baozi in enumerate(res):#返回索引和类容
# time.sleep(1)
# print('第%s个人,吃了%s'%(index,baozi))
# res = producer()
# consumer(res)
#上述过程太慢,两则有先后顺序(顺序执行)-应该并发运行
#如何实现并发运行?(同时运行两个程序)-运行一个(跳到另一个程序),执行一个
#生成器实现并发操作
import time
def consumer(name):
print("我是【%s】,我准备吃包子"%name)
while True:
baozi= yield#吃包子
time.sleep(1)
print("%s吃了 【%s】"%(name,baozi))
#封装下列功能
# c1 = consumer('rice')
# c1.__next__()
# c1.send("肉包")
def producer():
c1= consumer('rice')#吃的人也可以封装,不运行
c1.__next__()#开始运行
for iin range(10):
time.sleep(1)#生产包子所需要的时间
c1.send("肉包%s"%i)
producer()
##两个程序同时进行,一个程序触发另一个程序(并发)-实则在一个程序中模拟并发的效果(单线程-协程)
如果你对Python感兴趣,可以私信我,送学习资料哦!
网友评论