python greenlet模块和gevent模块 协程

想要实现程序在多个函数之间来来回回的效果,来看以下代码:

from greenlet import greenlet
#协程,人工切换
def fun1():
    print(12)
    f2.switch()
    print(23)
    f2.switch()
def fun2():
    print(34)
    f1.switch()
    print(45)


if __name__=='__main__':
    f1=greenlet(fun1)
    f2=greenlet(fun2)
    f1.switch()

运行结果:
在这里插入图片描述
自动切换:

i

mport gevent
import time

def fun1():
    print("Running fun1")
    gevent.sleep(2)
    print("context switch to fun1 again")

def fun2():
    print("Running fun2")
    gevent.sleep(3)
    print("context switch to fun2 again")
def fun3():
    print("Running fun3")
    gevent.sleep(1)
    print("context switch to fun3 again")
#t1=time.time()
gevent.joinall([
    gevent.spawn(fun1),#生成
    gevent.spawn(fun2),
    gevent.spawn(fun3)
])

运行结果:
python greenlet模块和gevent模块 协程_第1张图片

如果对我的文章感兴趣,请为我点一个赞,如果有python的知识需要了解或探讨,可以加本人微信:cuiliang1666457052

你可能感兴趣的:(协程,python)