python greenlet如何交替运行

python greenlet如何交替运行
python greenlet如何交替运行

1、greenlet说明

greenlet是一个基于Greenlet实现的网络库,它使用greenlet来实现协同程序。其基本思想是,当greenlet遇到IO操作时,例如访问网络时,它会自动切换到其他greenlet,直到IO操作完成,然后在适当的时候切换回继续执行。因为IO操作非常耗时,而且常常使程序处于等待状态,所以使用gevent来自动切换协程,可以确保运行的是greenlet,而非等待IO操作。

2、实例

可以通过gevent.sleep()交出控制权:

def test(n):
    for i in range(n):
        print(gevent.getcurrent(), i)
        gevent.sleep(1)

当然在实际的代码里,我们不会用gevent.sleep()去切换协程,而是在执行到IO操作时gevent会自动完成,所以gevent需要将Python自带的一些标准库的运行方式由阻塞式调用变为协作式运行。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注