Study/JavaScript

이벤트 루프(Event Loop)란?

ujam 2022. 1. 24. 17:50
728x90
반응형

 

 

자바스크립트 엔진은 Memory Heap과 Call Stack으로 구성되어 있습니다.

 

 

자바스크립트는 싱글 스레드 기반 언어여서 한 번에 하나의 작업을 처리합니다.

 

이말은 즉 Call Stack이 하나라는 뜻 입니다.

 

Call Stack에서 실행된 비동기 함수는 Web API를 호출하며, Web API는 콜백함수를 Callback Queue에 넣어줍니다.

 

Memory Heap은 프로그래밍을 할 때 선언된 변수나 함수 등이 담겨 메모리 할당이 일어나는 곳 입니다.

 

Call Stack은 코드가 실행될 때 보관되는 영역입니다.(Stack LIFO(Last In First Out) 선입후출 구조)  

 

Callback, Task Queue 는 비동기로 실행된 콜백 함수가 보관되는 영역입니다.(Queue FIFO(First In First Out) 섭입선출 구조)

Event Loop는 Call Stack과 Callback Queue의 상태를 체크하여 Call Stack이 빈 상태가 되면 Callback Queue의 첫번째 콜백을 Call Stack으로 넣습니다.
이러한 반복적 행동을 틱(tick) 이라고 칭합니다.

 

 

 

 

 

 

 

 

  • 참고

https://resilient-923.tistory.com/308

 

 

 

 

728x90
반응형