태스크 큐
비동기 작업이 완료된 후 콜백이 대기하는 곳입니다. Callback Queue라고도 합니다.
동작
console.log("1");
setTimeout(() => {
console.log("2");
}, 1000);
console.log("3");
1. console.log("1") → Call Stack에서 실행
2. setTimeout → Web API에게 타이머 맡김
3. console.log("3") → Call Stack에서 실행
4. (1초 후) 타이머 완료 → 콜백이 Task Queue에 들어감
Task Queue: │ () => console.log("2") │
5. Call Stack이 비었음 → Event Loop가 Task Queue에서 꺼내 실행
Call Stack vs Task Queue
| Call Stack | Task Queue | |
|---|---|---|
| 역할 | 지금 실행 중 | 실행 대기 중 |
| 구조 | LIFO (스택) | FIFO (큐) |
| 처리 | 바로 실행 | Call Stack 비면 실행 |
Call Stack: 마지막에 들어온 게 먼저 나감
Task Queue: 먼저 들어온 게 먼저 나감
큐에 들어가는 것들
setTimeout(() => {}, 0); // Task Queue
setInterval(() => {}, 1000); // Task Queue
addEventListener("click", () => {}); // Task Queue
비동기 작업의 콜백들이 여기서 대기합니다.