
Call Stack, Callback Queue의 상태를 체크,
Call Statck이 빈 상태면 Callback Queue의 첫번째 콜백을 Call Stack으로 배치한다.
이러한 반복적인 행동을 틱(tick)이라 부른다.
사진을 봐도 아직 감이 안온다. 다음.
- Memory Heap 메모리 할당이 일어나는 곳
- Call Stack 코드가 실행될 때 쌓이는 곳. stack(자료구조 중 하나이며 후입선출(LIFO) 의 룰을 따른다.)의 형태로 쌓인다.
프로세스(Process) vs 스레드(Thread)
- 프로세스 란 컴퓨터에서 연속적으로 실행되고 있는 프로그램을 말한다. 메모리에 올라와 실행되고 있는 프로그램 인스턴스라고 보면 된다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위이다.
- 스레드 란 프로세스 내에서 실행되는 여러 흐름의 단위라고 할 수 있다. 프로세스가 할당받은 자원을 이용하는 실행의 단위라고 보면 된다.
그림의 오른쪽에 있는 Wep API는 JS Engine의 밖에 그려져 있다.
Web API 는 브라우저에서 제공하는 API 로, DOM, Ajax, Timeout 등이 있다.
Call Stack에서 실행된 비동기 함수는 Web API를 호출하고,
Web API는 콜백함수를 Callback Queue에 밀어 넣는다.
비동기적으로 실행된 콜백함수가 보관 되는 영역이다.
예를 들어 setTimeout에서 타이머 완료 후 실행되는 함수(1st 인자),
addEventListener에서 click 이벤트가 발생했을 때 실행되는 함수(2nd 인자) 등이 보관된다.
※비동기 작업시 Callback Queue 해당작업의 종류와 우선순위 참고
다시 Event Loop