-
[자바스크립트] 이벤트 루프에 대해서javascript 2021. 4. 26. 18:27반응형
브라우저 환경에서 제공되는 자바스크립트는 단일 스레드 방식으로 작동한다.
하지만 실제로 웹브라우저 환경을 이용하다보면 많은 task가 동시에 이루어지는거와 같이 보인다.
그러한 자바스크립트의 동시성을 지원해주는 것이 이벤트루프이다.
자바스크립트는 하나의 콜스택을 사용하여 작업을 처리한다.
비동기적인작업(ajax요청,이벤트,timer) 은 자바스크립트가 동작하는 환경인 브라우저(web api)에서 담당한다.
태스크 큐(이벤트큐) : 비동기 코드가 실행되기 이전에 보관되는 장소
이벤트 루프 : 이벤트 큐와 콜스택을 확인하고 콜스택이 비었을때 이벤트큐의 태스크가 이벤트 루프에 의해 콜스택으로 이동한다.
ex.>
클릭 이벤트 가 발생시 태스크큐로 이동 > 콜스택비면 태스크큐에서 콜스택으로
타이머 시간종료시 tick 이벤트 발생(최소시간을 보장) > 이벤트 발생시 태스크큐로 이동 > 이벤트루프에 의해 이후에 콜스택으로
ajax 는 요청에 대한 응답을 받으면 이벤트큐로 이동 > 이벤트루프에 의해 콜스택으로 이동
'javascript' 카테고리의 다른 글
[자바스크립트] try catch 문을 통한 에러 처리 (0) 2021.05.03 [자바스크립트] 가비지 컬렉션 (0) 2021.04.27 [javascript] promise 에 대하여 (0) 2021.04.23 [자바스크립트] this 에 대해서 (call,apply,bind) (0) 2021.04.13 [자바스크립트] 클로저에 대해서 (0) 2021.04.09