协程实现

from gevent import monkey #monkey主要用于检测gevent里的IO操作,检测到了,会自动切换到另一个任务。 monkey.patch_all() #开启检测, 必须在文件开头声明,这样才能检测全文IO。

import gevent #需要先安装 gevent 包, 开启协程的包 import time

 

def eat(): ​ print('eat food 1') ​ time.sleep(2) #模拟IO操作,在没有导入 monkey 的情况下 gevent 检测不到。

gevent.sleep(1) #模拟IO操作 ,不需要导入monkey也能检测到

print('eat food 2')

def play(): ​ print('play 1') ​ time.sleep(1)

gevent.sleep(1)

print('play 2')

g1=gevent.spawn(eat) g2=gevent.spawn(play)

g1.join() #让主线程等待 g1 线程执行完毕

g2.join()

#gevent.joinall([g1,g2]) 让主线程等待 g1 、g2 线程执行完毕

print('主')

 

总结:

1.spawn函数传入你的任务

2.调用join 去开启任务

3.检测io操作需要打monkey补丁 就是一个函数 在程序最开始的地方调用它

 

posted @ 2019-06-19 09:27  萤huo虫  阅读(77)  评论(0编辑  收藏  举报