티스토리 뷰

1.5 이벤트 루프와 비동기 통신

  • 동기와 비동기
    • 동기 : 직렬(순차적)방식으로 작업을 처리하는 것
    • 비동기 : 병렬 방식으로 작업을 처리
  • 싱글스레드 : 프로세스를 실행하는 단위인 프로세스보다 더 작은 실행 단위
    • 하나의 프로세스에는 여러 개의 스레드를 만들 수 있다.
    • 스레드끼리는 메모리 공유와 여러 작업을 동시 수행할 수 있다.
  • 이벤트 루프의 정의
    • 자바스크립트 런타임 외부에서 JS의 비동기 실행을 돕기 위해 만들어진 장치
    • 호출 스택 : 자바스크립트에서 수행해야 할 코드나 함수를 순차적으로 담아두는 스택호출 스택과 이벤트 루프

    • 이벤트 루프 : 호출 스택이 비어있는지 여부를 확인하는 것 + 태스크 큐에 대기 중인 함수가 있는지 확인
  • 태스크 큐 : 실행해야 할 태스크의 집합(비동기의 콜백함수, 이벤트 핸들러 등)
    • setTimeout, setInterval, setImmediate
  • 자바스크립트 코드 실행은 싱글 스레드에서 이루어지지만 이런 외부 Web API 등은 모두 자바스크립트 코드 외부에서 실행되고 콜백이 태스크 큐로 들어가는 것
  • 마이크로 태스크 큐 : 기존 태스크 큐보다 우선권을 갖는 것
    • Promises, process.nextTick, queueMicroTask, MutationObserver
  • 렌더링 - 각 마이크로 태스크 큐 작업이 끝날 때마다 한 번씩 렌더링한다.

 

 

'TIL > 일기, 공부 내용 정리' 카테고리의 다른 글

JWT란 무엇인가?  (0) 2025.02.14
클래스, 클로저  (0) 2025.01.21
자바스크립트의 동등 비교, 함수  (1) 2025.01.03
클래스  (0) 2024.12.27
프로토타입  (0) 2024.12.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함