싱글 스레드 언어
자바스크립트는 싱글 스레드 언어이므로 한 번에 한 가지 작업을 처리하지만, 비동기로 동작하면 동시에 여러 작업을 수행할 수 있다.
비동기 동작 원리
call stack에 함수가 추가되어 실행 → 브라우저가 제공하는 web API 호출 → call stack에 추가된 함수는 제거되지만 함수가 전달한 콜백함수가 callback queue에 추가 → event loop는 call stack을 계속 감시하고 있다가 call stack이 빈 것을 보고 callback queue를 확인 → event loop는 callback queue에 추가된 콜백함수를 발견하고 call stack에 추가 → 콜백함수 실행
이벤트 루프(Event Loop)
call stack이 비어 있을 경우, callback queue에서 함수를 꺼내 call stack에 추가한다.
참고
'post항해_배움일지 > JavaScript' 카테고리의 다른 글
JavaScript_setTimeout과 setInterval (0) | 2021.09.19 |
---|---|
JavaScript_require와 import (0) | 2021.09.13 |
JavaScript_이벤트 버블링, 캡처링 (0) | 2021.09.10 |