协程Python 中实现多任务耗资源最小的方式
协程,又称微线程,纤程。协程是 Python 中另外一种实现多任务的方式,只不过比线程更小,占用更小执行单元。为啥说它是一个执行单元,因为它自带 CPU 上下文。只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。但是协程的切换只是单纯的操作 CPU 的上下文,所以一秒钟切换个上百万次系统都抗得住。之前我们讲过 yield 关键字,现在就用它来实现多任务。Python 还有一个比 greenlet 更强大的并且能够自动切换任务的模块 gevent。gevent 是对 greenlet 的再次封装。由于 IO 操作非常耗时,经常使程序处于等待状态,有了gevent 为我们自动切换协程,就保证总有 greenlet 在运行,而不是等待 IO。首先还是得先安装 gevent。
用户评论