greenlet实现协程
"""
# 进程 》 线程 》 协程
协程:微线程
greenlet 完成协程任务:底层是使用生成器来实现,但是不够智能,需要手动去切换
"""
import time
import greenlet
def a(): # 任务A
for i in range(5):
print('A', i)
gb.switch() # 切换到任务b来执行
time.sleep(0.1)
def b(): # 任务B
for i in range(5):
print('B', i)
gc.switch() # 切换到任务c
time.sleep(0.1)
def c(): # 任务C
for i in range(5):
print('C', i)
ga.switch() # 切换到任务a
time.sleep(0.1)
if __name__ == '__main__':
ga = greenlet.greenlet(a)
gb = greenlet.greenlet(b)
gc = greenlet.greenlet(c)
ga.switch() # 就相当于执行任务a