하자. Event()가 들어 왔고 이벤트를 기다리는 X 개의 숫자가 있습니다. 대기중인 그린렛이 완료되면 게시()를하고 싶습니다.이벤트가있는 제어용 그린렛
게시시기를 어떻게 알 수 있습니까?
설계도 :
event.set() -> X number event.wait() -> finally publish the current state.
가 어떻게 내가 게시하기 전에() 대기 모든 greenlets이 완료되었는지 확인합니까?
대기중인 모든 새끼를 그룹 에 넣고 group.join()을 실행하면 효과가 있다고 생각합니다.
import gevent
from gevent.pool import Group
from gevent.event import Event
import random
incoming = Event()
group = Group()
def test_wait(x):
gevent.sleep(random.random() * 3)
print 'test %s' % (x)
def publish():
print 'published'
for x in range(int(random.random() * 20)):
group.spawn(test_wait, x)
def event_setter():
incoming.set()
gevent.sleep(0)
publish()
event_setter()
test_wait에서 잠자기가없는 경우 Gevent.sleep (0)이 작동합니다. 대기중인 모든 소방서가 종료되었는지 어떻게 확인할 수 있습니까?