Event Loop

ryh0629·2022년 7월 1일
0

Event Loop

이벤트 루프는 프로그램에서 이벤트나 메시지를 기다리고 전달 하는 프로그래밍 구성 또는 디자인 패턴이다. 이벤트 루프는 내부 또는 외부 "이벤트 공급자"(일반적으로 이벤트가 도착할 때까지 요청 을 차단 함)에 요청한 다음 관련 이벤트 핸들러 ("이벤트 전달")를 호출하여 작동한다.

자바스크립트에서의 Event Loop

호출 스택 은 실행될 라인의 모든 작업을 추적하는 역할을 한다. 함수가 완료될 때마다 스택에서 팝된다.

이벤트 큐 는 처리를 위해 스택에 새 기능을 보내는 역할을 한다. 모든 작업이 실행을 위해 전송되어야 하는 올바른 순서를 유지하기 위해 큐 데이터 구조를 가진다.

비동기 함수가 호출될 때마다 브라우저 API 로 전송되며, 호출 스택에서 받은 명령을 기반으로 API는 자체 단일 스레드 작업을 시작한다.

예시로 setTimeout를 들 수 있다. 작업이 스택에서 처리 되면 setTimeout지정된 시간까지 대기하는 해당 API로 전송되어 처리를 위해 이 작업을 다시 보낸다.

이벤트 루프는 호출 스택이 비어 있는지 여부를 지속적으로 확인한다. 비어 있으면 이벤트 대기열에서 새 기능이 추가되고, 그렇지 않은 경우 현재 함수 호출이 처리된다.

출처 -https://www.educative.io/answers/what-is-an-event-loop-in-javascript

profile
developer

0개의 댓글