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
반응형
'Study > JavaScript' 카테고리의 다른 글
[Javascript] 콜백(Callback)이란? (0) | 2022.04.22 |
---|---|
[JavaScript] 클로저(Closure)란? (0) | 2022.04.12 |
[JavaScript] 스코프(Scope)란? (0) | 2022.04.09 |
[JavaScript] var, const, let 키워드 차이점 (0) | 2022.04.05 |
얕은 복사(shallow copy) vs 깊은 복사(deep copy) (0) | 2021.12.19 |