python gevnt实现协程
gevent
也是第三方库,自行调度协程,自动试别程序的耗时操作。比如读文件,等待时间。
代码举了个栗子
from gevent import monkey
monkey.patch_all()
import time
import gevent
def work1():
while True:
print("executing work1......" , gevent.getcurrent())
time.sleep(0.5)
def work2():
while True:
print("executing work2......")
time.sleep(0.5)
if __name__ == '__main__':
#指派任务,gevent.spawn(函数名,参数1,参数2,......)
g1 = gevent.spawn(work1)
g2 = gevent.spawn(work2)
#join是让主程序等待协程执行完再退出
g1.join()
g2.join()
结果 executing work1...... <Greenlet at 0x31d1900: work1> executing work2...... executing work1...... <Greenlet at 0x31d1900: work1> executing work2...... executing work1...... <Greenlet at 0x31d1900: work1> .......
特别说明
如果没有加下面两行代码,默认情况下就不能识别time.sleep(0.5)耗时操作, 这时可以用gevent.time(0.5)来代替
from gevent import monkey
monkey.patch_all()
打补丁
在不修改程序代码的情况下,为程序增加新的功能,

浙公网安备 33010602011771号