Javascript Event loop

2019. 3. 4. 16:58·WEB/JavaScript

자바스크립트는 싱글 쓰레드를 기반으로 한다 

따라서 원래라면 하나의 일을 처리한 후 다음 일을 처리할 수 있다 

하지만 브라우저가 제공하는 WebAPI를 통해 자바스크립크에 효과적으로 스레드를 지원한다


console.log( ' hi ' );


setTimeout ( function cd( ) {

console.log( ' there ' );

} , 5000 );


console.log( ' JS ' )


//console

hi

JS

there


console.log( ' hi ' ); 와 console.log( ' JS ' ) 는 stack에 쌓이고 바로 실행이 되지만 setTimeout 은 WebAPI에 넘겨진다

그 후 5초가 흐른 후 task queue로 넘어간다

이 때 stack이 비어 있으면 event loop는 queue에 있는 작업을 stack으로 넘긴다


따라서 setTimeout에 시간을 0으로 설정을 하면 WebAPI -> task queue -> stack에 있는 작업들이 종료 후 실행이 되기 때문에

stack에 쌓여있는 작업에 따라 딜레이가 생길 수 있다.



참고 : https://www.youtube.com/embed/8aGhZQkoFbQ


'WEB > JavaScript' 카테고리의 다른 글

es6문법 비구조화 할당  (0) 2019.03.07
es6 문법 const let var  (0) 2019.03.07
JS prototype /create  (0) 2019.02.14
Debug  (0) 2018.10.24
arr 메소드  (0) 2018.10.22
'WEB/JavaScript' 카테고리의 다른 글
  • es6문법 비구조화 할당
  • es6 문법 const let var
  • JS prototype /create
  • Debug
vitnal
vitnal
4년차 프론트엔드 개발자입니다. react를 사용하여 웹 서비스를 개발한 경험이 있습니다. github: https://github.com/jch1223
  • vitnal
    vitnal 아카이브
    vitnal
  • 전체
    오늘
    어제
    • 분류 전체보기 (146)
      • AI (1)
      • WEB (76)
        • React (21)
        • Nextjs (17)
        • JavaScript (16)
        • React Native (5)
        • HTML & CSS (7)
      • CS (3)
      • Git (15)
      • Dev Tools (23)
      • Deploy (12)
      • Tech Memo (8)
      • Retrospect (7)
  • 반응형
  • hELLO· Designed By정상우.v4.10.5
vitnal
Javascript Event loop
상단으로

티스토리툴바