greenlet+switch机制来实现协程
- greenlet用于创建协程,switch用于进行协程之间的切换某个协程在执行的过程中可以随时的被其他协程通过switch函数来打断,转而去执行其他协程,当前协程的中断现场会被保留,一旦中断的协程再次获得cpu的执行权首先会恢复现场然后从中断处继续执行
这种机制下的协程是同步,不能并发:
from greenlet import greenlet
from time import sleep
def func1():
print("协程1")
sleep(2)
g2.switch()
print("协程1恢复运行")
def func2():
print("协程2")
sleep(1)
g3.switch()
def func3():
print("协程3")
sleep(1)
g1.switch()
if __name__ == '__main__':
# 使用greenlet来创建三个协程
g1 = greenlet(func1)
g2 = greenlet(func2)
g3 = greenlet(func3)
# print(g1)
g1.switch() # 让协程g1取抢占cpu资源
'''
协程1
协程2
协程3
协程1恢复运行
'''
参考:https://blog.csdn.net/pythoncsdn111/article/details/96906350
来源:CSDN
作者:行走的学习机
链接:https://blog.csdn.net/weixin_45950544/article/details/103923676