이벤트 루프 ~

김승훈·2020년 11월 19일
0

JavaScript

목록 보기
6/16

프로세스 - 운영체제 위에서 연속적으로 실행되고 있는 프로그램을 말한다.
ex)사진 뷰어, 음악 프로그램은 각각의 프로세스를 가지고 있다.

프로세스 쓰레드

프로세스는 메모리 위에서 독립적으로 실행된다..
메모리에서 실행되고 있는 프로그램을 말함

각각의 프로세스는 저마다 리소스 자원들이 정해져있다.
code
stack - 동작순서
heap - 동적으로 할당된 변수
data - 전역변수

쓰레드 - 일꾼 ? 작은 일꾼 단위
쓰레드마다 스택이 지정됨
쓰레드는 이 프로세스에 공통적으로 할당된 리소스 동시 다발적으로 접속해서 동시 다발적으로 업데이트 해야되서
이렇게 서로 공유해서 사용.

런타임환경 (엔진 이해, 스택 개념 정리)

자바스크립트는 싱글쓰레드언어
브라우저 안에는 여러가지 쓰레드가 들어있음.

call, stack ,heap -프로세스안에

메모리 힙에는 즉 변수를 선언해서 오브젝트를 할당하거나 문자열이나 숫자를 할당하게 되면 메모리 힙에 정리됨
구조적으로 자료구조처럼 정리 되어있지 않고 여기 저기 아무데나 들어가있음.

스택은 자료구조 LIFO last in First out 나중에 들어온게 먼저나간다
스택에는 push와 pop peek같은 api가 있음.

브라우저 런타임

web apis

DOM APO
setTimeout
setInterval
fetch
event Listner

자바스크립트 런타임 환경에 자바스크립만으로 할 수 있는 거는 너무 한정적,
웹 api 다양한 것을 할 수 있다. <- 브라우저에서 제공, 브라우저 멀티 쓰레딩을 이용

Task Queue 지정된 이벤트가 발생했을 때
Queue ? FIFO first in firout

콜스택과 큐를 관찰하는 친구 이벤트 루프

Microtask Queue - promise

render

콜스택에 코드가 수행되고 있을 동안에는 저대로 이렌더링으로 올 수 없다.
이벤트 루프는 콜스택이 비워질때 까지 머무름

https://www.zerocho.com/category/JavaScript/post/597f34bbb428530018e8e6e2

0개의 댓글