Event Loop

seonbin2·2021년 4월 8일
0

javascript

목록 보기
1/1

javascript는 싱글스레드이지만 동시성을 갖는다 ?
👉 javascript는 싱글스레드이지만, event loop를 이용하여 비동기 방식으로 동시성을 갖는다.

  1. Memory Heap : 메모리 할당 담당
  1. Call Stack : 코드가 호출되어, 스택으로 밑에서부터 쌓인다.
  2. Web api : setTimeout, setInterval 등 비동기 작업 수행
  3. Callback Queue : 비동기 작업들이 실행된 뒤 이동하는 공간
  4. Event Loop : Call Stack이 비어있는 상태이면, Callback Queue => Call Stack 이동

- 작동 순서

  1. 함수를 선언하게 되면 Memory Heap 저장
  1. 함수들을 실행했을시, 하나씩 Call Stack 이동
  2. Call Stack 담긴 함수들이 실행되고 제거 된다. 비동기 함수는 Web APIs 이동
  3. Call Statck이 다 비워지게 되면, Web APIs에서 실행되고, Callback Queue로 이동
  4. Callback Queue에 있는 비동기 함수가 Event Loop 통해 Call Stack에 전달된다.
profile
개발개발개발

1개의 댓글

comment-user-thumbnail
2021년 4월 8일

좋은 글 보고 갑니다

답글 달기