동기,비동기와 프로세스,스레드

박진(TsTunas)·2023년 5월 31일
0

동기, 비동기

동기, 비동기는 코드가 실행되는 방식입니다.

동기

  • 코드가 순차적으로 실행 완료됨.
  • 이전 코드가 완료될 때까지 오래 걸리는 작업이라면 다음 코드의 실행이 늦춰짐.
  • 순차적으로 완료되기 때문에 A-B 순서라면 B가 실행될 때, A가 완료되었다는 것을 믿을 수 있음.

비동기

  • 코드의 실행 완료를 기다리지 않고 다음 코드 실행.
  • 오래 걸리는 작업이라도 프로그램의 실행 흐름을 멈추지 않음.
  • A-B 순서의 코드에 B가 실행될 때 A가 실행 완료가 되었는지 명확하지 않기에 주의해야함.
  • 콜백을 사용하여 특정 코드가 실행된 후에 실행되어야하는 코드를 쓸 수 있음.
  • 동기 방식에 비해서 프로그램의 흐름을 예측하기 어렵고, 순서 보장을 위해 쓰는 콜백이 중첩되어 콜백 지옥이 생길 수도 있음.

프로세스, 스레드

프로세스

  • 메모리 상에 존재하는 프로그램의 인스턴스.
  • 운영체제로부터 시스템 자원을 할당받은 작업의 단위.
  • 프로세스는 독립된 메모리 공간을 할당받으며, Code, Data, Stack, Heap으로 나뉨.
  • 할당받은 자원을 가지고 작업을 수행하는 스레드가 적어도 1개 존재.(메인 스레드)

스레드

  • 프로세스 내에서 자원을 사용하는 여러 실행 흐름의 단위.
  • 스레드는 Stack을 제외한 메모리 공간을 다른 프로세스와 공유함.
profile
자바스크립트 전문가가 되고 싶은 아마추어

0개의 댓글