用yield来实现协程,每次都要手动调用,切换任务。可以用greenlet来替换yield
greenlet模块
为了更好使用协程来完成多任务,python中的greenlet模块对其进行了封装,从而使得切换任务变得更加简单
gevent模块
greenlet已经实现了协程,但是这个还要人工切换,比较麻烦。python还有一个比greenlet更强大的并且能够自动切换任务的模块gevent
其原理是当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。
由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为我们自动切换协程,就保证总有greenlet在运行,而不是等待1O
Python greelet & gevent模块(协程)
最新推荐文章于 2022-04-20 08:42:30 发布