자바스크립트
런타임
런타임과 자바스크립트
런타임(runtime)은 컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다.
- JavaScript는 싱글 스레드 언어이기에 하나의 메인 스레드로 작업을 처리한다.
- 이는 한 번의 하나의 작업만 처리할 수 있으며, 단 하나의 콜 스택을 갖는다고 볼 수 있다.
콜 스택(Call Stack)
호출 스택은 여러 함수들(functions)을 호출하는 스크립트에서 해당 위치를 추적하는 인터프리터 (웹 브라우저의 JavaScript 인터프리터같은)를 위한 메커니즘입니다. 현재 어떤 함수가 실행중인지, 그 함수 내에서 어떤 함수가 호출되어야 하는지, 등을 제어합니다.
- 중첩된 함수들을 호출하는 과정에서 해당 위치를 추적하기 위해 실행 컨텍스트를 쌓고 제거하는 공간
- 블로킹 연산 주의, 스택 오버 플로우
- 스레드 안정성
- 경쟁 조건(Race Condition)이나 데드락(Dead Lock) 같은 문제 발생하지 않음
- 경쟁 조건(Race Condition)
- 여러 스레드/프로세스가 공유 자원에 접근하려 할 때 실행 순서에 따라 결과가 달라지는 현상
- 데드락(Dead Lock)
- 여러 스레드/프로세스가 서로의 자원을 기다리며 영원히 블록되는 상태
- 4가지 필요 조건: 상호 배제, 점유 대기, 비선점, 순환 대기
Last updated on