1. JavaScript Event Loop

자바스크립트 이벤트 루프

JavaScript는 Single Thread(Stack이 하나) 기반, 이벤트 루프 기반
Thread가 하나라는 것은 한 번에 하나의 작업만 수행가능하다는 것인데
실제 JavaScript를 이용하다보면 동시에 여러 작업이 수행되는 것처럼 느껴질 때가 있다.
JavaScript가 이러한 동시성을 지원할 수 있는 이유가 바로 Event Loop이다.

추후 내용이 추가될 수 있습니다.

자바스크립트 엔진은 크게 3가지로 나뉜다.

  • Call Stack
    • 실행컨텍스트들이 쌓이는 영역
  • Heap
    • 동적으로 생성된 객체(인스턴스) 생성
  • Task Queue
    • 처리해야 하는 Task들을 임시 저장하는 대기 큐
    • Call Stack이 비었을 때 큐에 먼저 들어온 순서대로 작업을 수행

Event Loop는 Call Stack과 Task Queue의 상태를 계속 확인하며
Call Stack이 빈 상태가 되면 Task Queue에서 첫 번째 Task를 Call Stack에 추가한다.

이 작업을 반복적으로 수행하는 것이 바로 Event loop이다.

좋은 웹페이지 즐겨찾기