作者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
1F:→ AndCycle:你直接下spawn他就会start了, 请回头读 Greenlet objects 01/16 17:10
2F:→ mingtai1:spawn开始了我知道,只是觉得怎麽只add g1结果全都一起跑. 01/16 20:18
3F:→ mingtai1:还是说真的只能要用时再spawn再add..就不能先spawn了@_@ 01/16 20:19
4F:→ AndCycle:Greenlet(myfunction, 'arg1', 'arg2', kwarg1=1) 01/17 18:19
5F:→ AndCycle:Greenlet.spawn(myfunction, 'arg1', 'arg2', kwarg1=1) 01/17 18:19
7F:→ mingtai1:误会了, join只让main等g1,但没阻止g2,g3被排程.感谢A大! 01/18 17:46