Python协程-greenlet

greenlet

Greenlet是python的一个C扩展,提供可自行调度的协程
当一个greenlet遇到IO操作,如访问网络、文件操作时,就自动切换到其他greenlet,等IO操作完成,再在适当的时间切换回来继续执行
为了更好使用协程来完成多任务,python中的greenlet模块对其封装,从而使得切换任务变的更加简单

安装方式

使用如下命令安装greenlet模块:

pip3 install greenlet

使用

from greenlet import greenlet
import time

def ttest1():
    while True:
        print ("---A--")
        gr2.switch()      # 切换到另一个函数
        time.sleep(0.5)

def ttest2():
    while True:
        print ("---B--")
        gr1.switch()     # 切换到另一个函数
        time.sleep(0.5)

# 创建greenlet对象
gr1 = greenlet(ttest1)
gr2 = greenlet(ttest2)

## 起始执行的函数,切换到gr1中运行
gr1.switch()

运行结果:

---A--
---B--
---A--
---B--
---A--
---B--
......
posted @ 2022-08-05 15:08  尘世风  阅读(126)  评论(0编辑  收藏  举报
*/