[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으로 올리는 역할
  1. stack에서 scope단위로 코드를 실행함
  2. 실행 도중 비동기 처리가 필요한 코드가 있으면 webapis로 넘기고, stack에서는 코드를 계속 실행 함
  3. webapis는 넘겨받은 코드를 실행함
  4. webapis에서 코드 실행이 끝나면 리턴값을 task queue로 넘김
  5. task queue에서 대기
  6. 한 scope의 실행이 끝나면
  7. event loop가 task queue에 있는 task들을 stack으로 올림
  8. 올라간 코드가 실행되고, 1과정으로 돌아가 반복
출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?