다잘하고싶어

이벤트 루프 이해하기 본문

이론학습/Front

이벤트 루프 이해하기

챙영잉 2023. 3. 15. 10:32

이벤트루프 EventLoop

이벤트루프는 CallStack 과 Task Queue 의 상태를 체크하여,

CallStack 이 비었을 때,

Task Queue 의 첫번째 콜백을 CallStack 으로 밀어 넣는다.

 

콜스텍 CallStack

현재 실행중인 코드가 담기는 스택구조의 메모리 영역

함수를 실행하면 함수에 대한 기록이 스택에 push 됨. 함수의 결과값이 반환되면(응답되면) pop

 

그림으로 이해하기

 

 

1️⃣ 맨 처음 “로봇청소기 돌려→ 통 비우기”가 CallStack 에 담긴다.

(= 스택에 담겼다가 통비우기(=콜백함수)는 바로 실행할 수 없으므로)

2️⃣ Web API 로 통비우기를 넘겨준다.

3️⃣서버와의 연결을 통해 응답을 받으면 테스크큐로 통비우기를 넘겨준다

4️⃣이벤트루프가 콜스텍과 테스크큐를 지켜보다가 스택이 비워지면 테스크큐에 담긴 내용을 스택으로 넘긴다.

5️⃣스택에 들어온 통비우기는 바로 실행할 수 있으므로 실행된다.