一丧:你只是穷,不是选择困难
我们来认识一个简单的协程包greenlet。
我们来看一下什么是协程,在笔者看来协程就是AB之间的反复调用。
而这个包的名字我们就可以看出开发者对协程的理解和对绿色的深深恶意。
好啦,greenlet这个包没有之前写过的gevent那么复杂,不过同样也没有gevent包那么强大的功能。
我们先来看代码吧。
import greenlet#greenlet协程包
import time
def work1():
for i in range(5):
print("work1",i)
time.sleep(1)
g2.switch()#启动work2的子程序
def work2():
for i in range(5):
print("work2",i)
time.sleep(1)
g1.switch()#调用work1的子程序
g1 = greenlet.greenlet(work1)
g2 = greenlet.greenlet(work2)
g1.switch()#启动协程g1,注意协程只启动一个函数就可以开启整个协程
我们不难看出使用greenlet的几个步骤:
导入greenlet包
使用greenlet方法创建协程
switch启动协程
在A程序末尾调用B程序
B程序末尾调用A程序,实现协程。