1. Single Thread
💡
Thread?
- 작업을 처리할 때 실제로 작업을 수행하는 주체
- JavaScript는 Single Thread 언어로, 동시에 여러 작업을 처리할 수 없다.
2. JavaScript Runtime
- JavaScript가 비동기 처리를 할 수 있도록 도와주는 환경이 필요하다
⇒ Browser, Node.js 에서 처리한다.
3. JavaScript의 비동기 처리
- 브라우저 환경에서 JS의 비동기
- 모든 작업은 Call Stack으로 들어간 후 처리된다.
- 오래 걸리는 작업이 들어오면, Web API로 보내 별도로 처리하도록 한다.
- Web API에서 처리가 끝난 작업은 곧바로 Call Stack으로 들어가지 못하고, Task Queue에 순서대로 들어간다.
- Event Loop가 Call Stack이 비어있는 것을 체크하고, Call Stack이 비었다면? Task Queue에서 제일 앞에있는(오래된) 작업을 Call Stack으로 보낸다.
Uploaded by N2T