Python 递归终止生成的greenlet
在第十次迭代之后,调用Python 递归终止生成的greenlet,python,kill,gevent,spawn,Python,Kill,Gevent,Spawn,在第十次迭代之后,调用kill,它将杀死运行f2的greenlet。请告诉我一种方法,我可以杀死由它递归产生的greenlet,这样所有4个都会被杀死。gevent维护并在调用join()后开始运行的事件队列。没有存储的树结构,至少我不知道。如果你想杀死所有繁殖的孩子,请自己维护一个繁殖列表,并迭代它们以杀死。停止暴力。永远不要考虑杀害儿童。对任何通过谷歌发现这个问题的人:请自首 import gevent def f1(): gevent.spawn(f3) while Tr
kill
,它将杀死运行f2
的greenlet。请告诉我一种方法,我可以杀死由它递归产生的greenlet,这样所有4个都会被杀死。gevent维护并在调用join()后开始运行的事件队列。没有存储的树结构,至少我不知道。如果你想杀死所有繁殖的孩子,请自己维护一个繁殖列表,并迭代它们以杀死。停止暴力。永远不要考虑杀害儿童。对任何通过谷歌发现这个问题的人:请自首
import gevent
def f1():
gevent.spawn(f3)
while True:
print "f1"
gevent.sleep(1)
def f2():
gevent.spawn(f1)
while True:
print "f2"
gevent.sleep(1)
def f3():
gevent.spawn(f4)
while True:
print "f3"
gevent.sleep(1)
def f4():
while True:
print "f4"
gevent.sleep(1)
g2 = gevent.spawn(f2)
g2.join(timeout=1.0)
def kill(g):
##
## kill children here
##
g.kill()
for i in range(100):
print "--"*4, i
if i == 10:
kill(g2)
gevent.sleep(1)