가능한 중복 : 내가 python2.7에서 이벤트 루프를 구현하기 위해 노력하고
Event loop implementation for Python 3?기본 이벤트 루프 파이썬
. 나는 타임 이벤트와 다른 액션이 일어나서 이벤트를 트리거 할 수 있기를 바란다.
나는 이와 비슷한 것을하기 위해 select
을 사용할 수 있음을 이해합니다.
이것이 올바른 방법인가요, 아니면 누락 된 더 나은 방법이 있습니까?
가능한 중복 : 내가 python2.7에서 이벤트 루프를 구현하기 위해 노력하고
Event loop implementation for Python 3?기본 이벤트 루프 파이썬
. 나는 타임 이벤트와 다른 액션이 일어나서 이벤트를 트리거 할 수 있기를 바란다.
나는 이와 비슷한 것을하기 위해 select
을 사용할 수 있음을 이해합니다.
이것이 올바른 방법인가요, 아니면 누락 된 더 나은 방법이 있습니까?
이벤트 루프는 이벤트를 처리/처리하는 루프입니다. .
이벤트는 일부 코드 부분에 관심이있을 수있는 시스템에서 발생하는 뭔가가 시작되는 시점에
, 모든 구성 요소가 이벤트에 등록을 한 후, init 이벤트는 해고 :
난 그냥 여기에 원시 코드를 제공하고있다 : eventqueue
이 구현되는 방법
listeners = [component1, component2, component3]
eventqueue.add(InitEvent())
while True:
event = eventqueue.pop()
for listener in listeners:
listener.handle_event(event)
하고 무엇 Event()
클래스 계층 구조는 독자들에게 연습 문제로 남겨 것 같습니다. .pop()
메서드에 threading.(R)Lock
등을 사용하는 데주의하십시오.
또한 각 이벤트 유형에 대해 별도의 수신기 목록을 사용할 수 있습니다. 따라서 이벤트는 이벤트를 알리기 위해 자신과 부모의 청취자를 모두 식별 할 수있는 메커니즘이 있으므로 이벤트를 호출 (또는 .fire()
메소드)하여 "해고"할 수 있습니다.
어쨌든 청취자는 이벤트에서 수행 할 작업과 수행 할 작업을 스스로 결정할 수 있습니다.
http://stackoverflow.com/questions/6812397/event-loop-implementation-for-python-3 – avasal
더 많은 컨텍스트를 지정해야합니다. 시스템 프로그래밍, 소켓 프로그래밍, 개별 이벤트 시뮬레이션에 대해 이야기하고 있습니까? –