이벤트 루프가 무엇인지 이해하려고합니다. 종종 이벤트 루프에서 이벤트가 발생했다는 알림을받을 때까지 무언가를 수행한다는 설명이 있습니다. 그런 다음 이벤트를 처리하고 이전에하고 있던 작업을 계속 수행합니다.
위의 정의를 예제와 함께 매핑합니다. 이벤트 루프에서 '듣는'서버가 있으며 소켓 연결이 감지되면 데이터를 읽고 표시 한 후 서버가 이전과 같이 청취를 재개 / 시작합니다.
그러나이 사건이 발생하고 우리에게 '그런 식으로'알림을받는 것은 내가 처리해야 할 일입니다. "이벤트 리스너를 등록해야하는 '그런 것만은 아닙니다'"라고 말할 수 있습니다. 그러나 이벤트 리스너는 무엇이지만 어떤 이유로 든 반환되지 않는 함수입니다. 이벤트가 발생하면 알림을 기다리는 자체 루프에 있습니까? 이벤트 리스너도 이벤트 리스너를 등록해야합니까? 어디서 끝나요?
이벤트는 작업하기에 좋은 추상화이지만 추상화 일뿐입니다. 결국 폴링은 불가피하다고 생각합니다. 아마도 우리는 코드에서 그것을하지 않고 있지만 낮은 수준 (프로그래밍 언어 구현 또는 OS)이 우리를 위해하고 있습니다.
기본적으로 다음과 같은 의사 코드로 내려와 충분히 낮은 곳에서 실행되므로 바쁜 대기를하지 않습니다.
while(True):
do stuff
check if event has happened (poll)
do other stuff
이것이 전체 아이디어에 대한 나의 이해이며, 이것이 올바른지 듣고 싶습니다. 나는 전체 아이디어가 근본적으로 잘못되었다는 것을 받아들이고 있으며,이 경우 올바른 설명을 원합니다.
EventSource
있지 폴링 키보드 입력하면거야?