2
import gevent
import time
def func(a, t):
time.sleep(t)
print "got here", a
gevent.spawn(func, 'a', 4)
gevent.spawn(func, 'b', 0).join()
time.sleep(3)
print "exit"
輸出:
got here a
got here b
exit
後市展望:
我從來沒有參加第一greenlet,因此,我希望它永遠不會執行;或者,由於長時間的睡眠(),它應該在第二個greenlet之後完成。
語境:
我希望能夠把火關「暴殄天物」 greenlet用於填充緩存,我從來沒有參加上,我從來沒有想阻止等待的結果。
爲什麼如果我從不加入它,它會執行嗎? – 2013-03-01 18:12:49
我已經更新了我的回答,澄清了幕後發生了什麼......這有幫助嗎? – 2013-03-01 20:42:14
所以gevent有一個全局事件隊列,並且調用單個greenlet上的join()實際上啓動隊列中的所有事情? – 2013-03-01 23:53:13