메모리힙
과 콜스택
으로 구성되어 있다.단일 스레드(single thread)
프로그래밍 언어.메모리힙
콜스택
stack
이란? 자료구조 중 하나. 선입후출의 룰을 따른다.timeout
과 ajax
, DOM
이 있다.queue
: 자료구조 중 하나, 선입선출의 룰을 따른다.콜스택
과 콜백큐
의 상태를 체크하여 콜스택이 빈상태가 되면, 콜백큐의 첫번째 콜백을 콜스택에 밀어넣는다.정리
- v8엔진에서 코드가 실행되면, call st ack에 쌓인다.
- stack은 선입후출의 룰을 따라서, 마지막에 들어온 함수가 먼저 실행되며 stack에 쌓여진 함수가 모두 실행된다.
- 비동기함수가 실행되면, web api가 호출되고,
- web api는 비동기함수의 콜백함수를 콜백큐에 밀어넣는다.
- 이벤트루프는 콜스택이 빈상태가되면 콜백큐에서 첫번째콜백을 가져와 콜스택으로 이동시킨다.
- 자바스크립트는 단일스레드 언어기 때문에 한번에 하나씩 실행된다.
- 그러나 web api, 이벤트루프, callback queue 때문에 멀티스레드처럼 보인다.