看板 Python 關於我們 聯絡資訊
不曉得有沒有人試過gevent的group功能 我試github上的範例時 發現一個奇怪現象 我只add了一個greenlet g1,可是為什麼呼叫join的時候,卻是g1,g2,g3三個全都執行了 列印出的結果是 bar foo fizz 而不是只有bar 有人知道為什麼會這樣嗎? code如下,感謝... (version : python 2.7.3, Gevent 0.13.8 , Greenlet 0.4.0 ) import gevent from gevent.pool import Group def talk(msg): print(msg) g1 = gevent.spawn(talk, 'bar') g2 = gevent.spawn(talk, 'foo') g3 = gevent.spawn(talk, 'fizz') group = Group() group.add(g1) group.join() -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.12.151
AndCycle:你直接下spawn他就會start了, 請回頭讀 Greenlet objects 01/16 17:10
mingtai1:spawn開始了我知道,只是覺得怎麼只add g1結果全都一起跑. 01/16 20:18
mingtai1:還是說真的只能要用時再spawn再add..就不能先spawn了@_@ 01/16 20:19
AndCycle:Greenlet(myfunction, 'arg1', 'arg2', kwarg1=1) 01/17 18:19
AndCycle:Greenlet.spawn(myfunction, 'arg1', 'arg2', kwarg1=1) 01/17 18:19
AndCycle:文件就有講的東西 http://www.gevent.org/gevent.html 01/17 18:19
mingtai1:誤會了, join只讓main等g1,但沒阻止g2,g3被排程.感謝A大! 01/18 17:46