자바스크립트의 Main Thread인 이벤트 루프는 싱글 스레드이다. 하지만 이벤트 루프만 독립적으로 실행되지 않고 웹 브라우저나 Node JS 같은 멀티 쓰레드 환경에서 실행된다. 즉 JS 자체는 싱글스레드이지만, 런타임은 멀티스레드 환경일 수 있는 것!

싱글 스레드로 여러 요청을 처리하는 방식

→ 비동기 작업을 통해 처리한다

JS의 비동기 런타임 과정

Untitled

CallStack은 일하는곳, Web API는 실행할 수 있는 작업 목록, Task Queue는 작업순서 리스트, Event Loop 는 작업 관리자 느낌

스레드 정리