关于gevent的小问题!求教,谢谢
这段是我的代码import gevent
import time
def f1(n):
for i in range(n):
print(gevent.getcurrent(), i)
gevent.sleep(1)
print('ooo')
def f2(n):
for i in range(n):
print(gevent.getcurrent(), i)
gevent.sleep(4)
print('kkk')
def f3(n):
for i in range(n):
print(gevent.getcurrent(), i)
gevent.sleep(0.5)
print("----1---")
g1 = gevent.spawn(f1, 5)
print("----2---")
g2 = gevent.spawn(f2, 5)
print("----3---")
g3 = gevent.spawn(f3, 5)
#print("----4---")
#g1.join()
#g2.join()
#g3.join()
我尝试把join()给注释掉,他的运行结果是只打印了1,2,3,函数里面的什么都没打。我猜想可能是因为gevent.spawn()只创建了greenlet对象,但是并没有执行greenlet的switch方法。但是我再网上查了下,gevent.spawn()的效果是“创建一个普通的Greenlet对象并切换”。请问到底是怎么回事? 它其实偷偷在用子线程切代码运行 但是你不join 主线程执行到最后一行就没了呗 直接退出程序了
页:
[1]