1、gevent实现多协程
import gevent
import time
def task(index):
"""任务 index:任务的索引号"""
for i in range(3):
# gevent.getcurrent():取得执行当前任务代码的gevent对象
print("任务%d ,代码块%d ,当前gevent对象%s"%(index,i,str(gevent.getcurrent())))
# 在gevent中 原生的休眠方式是不识别的,改为gevent方式
gevent.sleep(1)
# time.sleep(1)
# recvfrom lock open
if __name__ == '__main__':
# 创建gevent对象
g1=gevent.spawn(task,1) # task : 表示gevent要执行的任务函数, 1 向task函数传递的参数
g2= gevent.spawn(task, 2)
g3 = gevent.spawn(task, 3)
# 阻塞主线程,执行gevent对象 ,内部是开启gevent loop 来实现gevent执行与切换
g1.join()
g2.join()
g3.join()
print("主线程最后执行的代码...")
运行结果: