CS 공부

[CS] 프로세스와 스레드의 차이, 멀티 스레드 VS 멀티 프로세스

ogh4554 2025. 4. 10. 15:44

1. 프로세스

- 운영체제에서 실행중인 프로그램 '하나'를 의미

- 각 프로세스는 독립된 메모리공간(코드, 데이터, 힙, 스택 등)을 가지고 있음

- 다른 프로세스와 자원 공유 불가


2. 스레드

- 프로세스 내에서 실제로 작업을 수행하는 실행 단위

- 같은 프로세스 내의 여러 스레드는 '코드, 데이터, 힙을 공유'하고 '스택은 독립적'.

- 자원 공유가 용이하지만, 그만큼 동기화 문제 발생 가능


3. 멀티 프로세스 VS 멀티 스레드

  멀티 프로세스 멀티 스레드
메모리 구조 각 프로세스가 독립적인 메모리 사용 스레드들이 공유 메모리 사용
안정성 하나가 죽어도 다른 프로세스 영향없음(안정적) 하나에 문제 발생 시 전체 프로세스에 영향 가능
자원공유 어려움 용이함(동기화 필요)
생성/전환 비용 작음
예시 크롬 브라우저 탭 스레드 1-게임 내 입력처리, 스레드 2-렌더링,
스레드3 - AI