Callback queue

김철회·2022년 10월 19일
0

Callback Queue 자세히 알아보기.

먼저, Callback Queue는 자바스크립트 엔진의 동작원리에서 찾아볼 수 있는 개념이다.
이벤트 루프가 Callback Queue에 대기하고 있는 비동기로 처리할 것들을(setTimeout, Promise 등) Call stack이 비었을 때, Call stack으로 넣어준다.
Callback Queue에는 비동기로 처리할 것들이 쌓이게 되는데, 이때 쌓여 있는 비동기 함수의 우선순위와 Callback Queue에서 세부적으로 분류되는 것들에 대해서 알아보고자 한다.

Callback Queue

  1. Task Queue(Macrotask queue)
  2. Microtask Queue
  3. Animation frames

Task Queue

Task Queue에는 Microtask Queue와 구분하기 위해 Macrotask Queue라고 한다.

setTimeout / setInterval / setImmediate 이 있다.

Microtask Queue

Microtask Queue는 우선순위가 Task Queue(MacroQueue) 보다 높다.

Promise / async await 와 같은 비동기 호출이 있다.

Animation Frames

Animation Frames는 requestAnimationFrame과 같은 것들을 위한 Queue이다.

Callback Queue에서의 우선순위

MicroTask Queue > Animation Frames > Task Queue(MacroQueue)

또한, MicroTask Queue와 Animation Frames에 여러 개가 있다면 모든 작업들을 한 번에 다 진행하고 다음 Queue로 넘어간다. 하지만 Task Queue에 경우 여러 개가 쌓여 있더라고 모두 하는 것이 아니라 하나만 진행하고 다음 Queue로 넘어간다.

profile
안녕하세요!

0개의 댓글