Javascript 이벤트 루프(Event Loop)

리액트만패는젊은이·2024년 9월 25일

Javascript Cs

목록 보기
3/6

자바스크립트는 싱글 스레드 언어로, 이벤트 루프를 통해 비동기 작업을 처리합니다. 이벤트 루프는 콜 스택(Call Stack)과 태스크 큐(Task Queue)를 관리하면서 동작합니다.

  1. 콜스택: 함수가 호출될 때 이 스택에 쌓이며, 실행이 끝나면 스택에서 제거됩니다.

  2. 태스크 큐: 비동기 작업(ex. setTimeout, Promise)이 완료되면 콜백이 여기에 추가됩니다.

이벤트 루프(Enevt Loop) :

  • 이벤트 루프는 콜 스택이 비어 있을 때 태스크 큐에서 작업을 꺼내와 실행합니다.
console.log('start');

setTimeout(() => {
  console.log('setTimeout');
}, 0);

Promise.resolve().then(() => {
  console.log('promise');
});

console.log('end');

출력순서 :
1. start -> 2. end -> 3. promise -> 4. setTimeout

동작과정 :

  • start와 end는 콜 스택에서 즉시 실행됩니다.
  • Promise는 마이크로태스크 큐에 추가되어, 콜 스택이 비면 바로 실행됩니다.
  • setTimeout 콜백은 태스크 큐에 들어가므로, Promise가 실행된 후 실행됩니다.
profile
front-end-developer

0개의 댓글