作者mingtai1 (綠豆嘉義人)
看板Python
標題[問題] gevent group的奇怪現象
時間Wed Jan 16 13:34:03 2013
不曉得有沒有人試過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
→ mingtai1:誤會了, join只讓main等g1,但沒阻止g2,g3被排程.感謝A大! 01/18 17:46