协程,是充分利用cpu给该线程的时间,在一个线程里放置多个任务,当某个任务阻塞时就执行下一个任务。其特点是能够记住这些任务执行到哪一步了,下次再执行该任务的时候回从上次阻塞的地方继续开始。创建协程需要使用gevent模块。代码如下:
import gevent
'''gevent协程中,遇到需要耗费时间的操作就会跳转到下一个任务。
但是此处的延时、堵塞或者其他耗时的操作,都必须换到gevent模块下的'''。
def f(n):
for i in range(n):
print(gevent.getcurrent(), i) # getcurrent()函数会获取到当前的协程号
gevent.sleep(0.5) # 如果没有使用monkey,则需要这样写才能调用时间模块。
# 创建3个任务对象
g1 = gevent.spawn(f, 5)