# 实现协程的第二种方式
# 利用gevent 打上monkey补丁
from gevent import monkey
monkey.patch_all()
import gevent
import time
from threading import current_thread,enumerate
def task1():
print(current_thread(),111)
print("task1 start ...")
time.sleep(3)
print("task1 over ...")
def task2():
print(current_thread(),222)
print("task2 start ...")
time.sleep(1)
print("task2 over ...")
# spawn用于创建一个协程任务
g1 = gevent.spawn(task1)
g2 = gevent.spawn(task2)
# 任务要执行,必须保证主线程没挂 因为所有协程任务都是主线在执行 ,必须调用join来等待协程任务
# g1.join()
# g2.join()
# 理论上等待执行时间最长的任务就行 , 但是不清楚谁的时间长 可以全部join
gevent.joinall([g1,g2])
print("任务结束...")