자바스크립트

런타임

런타임과 자바스크립트

런타임(runtime)은 컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다.

  • JavaScript는 싱글 스레드 언어이기에 하나의 메인 스레드로 작업을 처리한다.
  • 이는 한 번의 하나의 작업만 처리할 수 있으며, 단 하나의 콜 스택을 갖는다고 볼 수 있다.

콜 스택(Call Stack)

호출 스택은 여러 함수들(functions)을 호출하는 스크립트에서 해당 위치를 추적하는 인터프리터 (웹 브라우저의 JavaScript 인터프리터같은)를 위한 메커니즘입니다. 현재 어떤 함수가 실행중인지, 그 함수 내에서 어떤 함수가 호출되어야 하는지, 등을 제어합니다.

  • 중첩된 함수들을 호출하는 과정에서 해당 위치를 추적하기 위해 실행 컨텍스트를 쌓고 제거하는 공간
  • 블로킹 연산 주의, 스택 오버 플로우
  • 스레드 안정성
    • 경쟁 조건(Race Condition)이나 데드락(Dead Lock) 같은 문제 발생하지 않음
  • 경쟁 조건(Race Condition)
    • 여러 스레드/프로세스가 공유 자원에 접근하려 할 때 실행 순서에 따라 결과가 달라지는 현상
  • 데드락(Dead Lock)
    • 여러 스레드/프로세스가 서로의 자원을 기다리며 영원히 블록되는 상태
    • 4가지 필요 조건: 상호 배제, 점유 대기, 비선점, 순환 대기

Last updated on

On this page