| 
 | 
 
20鱼币 
这段是我的代码 
- 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对象并切换”。请问到底是怎么回事? |   
 
 
 
 
 
 |