python协程实例

协程
协程:协助程序,线程和进程都是抢占式特点,线程和进程的切换我们是不能参
与的。
而协程是非抢占式特点,协程也存在着切换,这种切换是由我们用户来控制的。
协程主解决的是 IO 的操作。
协程,又称微线程,纤程。英文名 Coroutine。
优点 1: 协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身
控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优
势就越明显。
优点 2: 不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,
在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程
高很多。
因为协程是一个线程执行,那怎么利用多核 CPU 呢?最简单的方法是多进程+
协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。
下面是实例:
import time
from greenlet import greenlet
def concumer(name):
while True:
baozi = yield#baozi = n
print(’%s吃了包子%d’%(name,baozi))
time.sleep(1)
def producer():
r = c1.next()
r = c2.next()
n = 1
while True:
print(‘厨师一下子生产了2个包子’)
c1.send(n)
c2.send(n+1)
n = n+2
if name == ‘main’:
c1 = concumer(‘c1’)
c2 = concumer(‘c2’)
p = producer()
你的梦想换了多少种了,你的计划和口号写了多少本日记了,你的改变自己喊了多少年了,你现在多大了,你还有多少时间和资本去继续这些无休止的空话和幻想,千万别等到垂老的时候才去后悔自己原来一直都是那样漫无目的地活着,那么从现在开始给自己认定一条道,努力走下去吧。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值