2017/9/5的学习内容___通过yield实现在单线程的情况下实现并发运算的效果

  之前的学习内容,由于没有申请开通博客,就没有分享,今天想分享一下学习内容:通过yield实现在单线程的情况下实现并发运算的效果

  

  采用的是经典的生产消费者模型 

  定义了两个函数 Consumer与Producer 

  关于生成器标志yield : 如果用__next__访问,只是单纯调用yield ;如果是send访问,不仅可以访问yield,也可以给yield赋值!  

  需求:一个人造包子;两个人吃包子;

  代码如下:

  

 1 # -*- coding:utf-8 -*-
 2 # Author : 何子辰
 3 
 4 # 单线程也可以实现并行运算
 5 # 生产者消费者模型
 6 
 7 import time
 8 
 9 def Consumer(name):
10     print('%s has started to eat the steamed stuffed bun!'%name)
11     while True:
12         SS_bun = yield
13         print('The %s is coming,but eaten by %s!'%(SS_bun,name))
14 
15 def Producer(name):
16     C1 = Consumer('Luna')
17     C2 = Consumer('Iriving')
18     C1.__next__()
19     C2.__next__()
20     print('Hzc is starting to make the steamed stuff bun!!')
21     for i in range(10):
22         time.sleep(1)
23         Buns = ['韭菜馅','鲅鱼馅']
24         print('Hzc has made two buns, the first one is %s,the second one is %s'%('韭菜馅','鲅鱼陷'))
25         C1.send(Buns[0])
26         C2.send(Buns[1])
27 
28 
29 Producer('HZC')
View Code

 

  

 

转载于:https://www.cnblogs.com/IrivingLoveLuna/p/7482530.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值