[JS] 자바스크립트의 비동기 작업 처리방식
[JS] 자바스크립트의 비동기 작업 처리방식
- 자바 스크립트는 내부적으로 stack, webapis, takse queue, event lppo를 가지고 있다
- stack : 코드를 실행하는 작업장으로, 해당 작업은 스코프 단위로 수행
- webapis : 비동기 작업을 stack으로부터 넘겨받아 해당 코드를 실행
- task quere : webapi가 완료한 작업을 저장하는 공간, rask queue에 저장된 task들은 해당 시점에서 stack이 비워지면 stack위로 올라가 실행될 예정이 작업들
- event loop : stack을 모니터하고 있다가 stack이 비워지면 task queue에 있는 작업들을 stack으로 올리는 역할
- stack에서 scope단위로 코드를 실행함
- 실행 도중 비동기 처리가 필요한 코드가 있으면 webapis로 넘기고, stack에서는 코드를 계속 실행 함
- webapis는 넘겨받은 코드를 실행함
- webapis에서 코드 실행이 끝나면 리턴값을 task queue로 넘김
- task queue에서 대기
- 한 scope의 실행이 끝나면
- event loop가 task queue에 있는 task들을 stack으로 올림
- 올라간 코드가 실행되고, 1과정으로 돌아가 반복
출처
댓글
댓글 쓰기