이번에는 Task Queue에 대해 알아보자.
Task Queue는 Call Stack과 마찬가지로 자료구조중 하나이며 Call Stack과 반대로 FIFO(First In First Out)구조를 갖는다.
즉 제일 먼저 들어오는 아이가 제일 먼저 나가게된다.
위 그림을 보면 DOM API, setInterval, setTimeout 등 이런 Web APIs들을 통해서 이벤트를 호출할 때 콜백을 등록하게되는데 그 등록된 콜백이 Task Queue 안에 들어오게된다.
Task Queue에 들어온 콜백은 이벤트 루프가 계속 돌다가 Call Stack에 공간이 다 비워지고 자바스크립트 엔진이 일을 하지않는 그 때 Task Queue안에 있는 콜백을 한번에 하나씩 Call Stack으로 가져오게된다.
다만 Call Stack으로 가져온 콜백 이벤트가 다 실행이되고 Call Stack안이 비어야 Task Queue안에 있는 또 다른 콜백을 가져올 수 있다.
'WEB' 카테고리의 다른 글
[web] Event Loop Call Stack (0) | 2021.06.30 |
---|---|
[web] SSR(Server Side Rendering) vs CSR(Client Side Rendering) (0) | 2021.04.12 |