티스토리 뷰

JavaScript

Javascript Event loop

Aairon 2019. 3. 4. 16:58
반응형

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

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

하지만 브라우저가 제공하는 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


반응형

'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
댓글