티스토리 뷰
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 |