본문 바로가기
카테고리 없음

프로세스(Process)와 스레드(Thread)

by Alohawaii 2026. 3. 15.

프로세스(Process)와 스레드(Thread)의 차이

 운영체제에서 프로그램이 실행될 때 프로세스와 스레드라는 실행 단위가 존재합니다.

 두 개념은 모두 CPU에서 실행되는 작업 단위이지만, 메모리 구조와 실행 방식에서 차이가 있습니다.

 


1. 프로세스(Process)

 프로세스는 실행 중인 프로그램의 인스턴스를 의미합니다.

 

예를 들어

브라우저, 메신저, IDE 등을 실행하면 각각 별도의 프로세스로 동작합니다.

 

대표적인 특징

  • 독립된 메모리 공간 사용
  • 다른 프로세스와 메모리를 직접 공유하지 않음
  • 안정성이 높음(한 프로세스가 죽어도 다른 프로세스 영향 적음)

프로세스 메모리 구조

Code(프로그램 코드)
Data(전역 변수)
Heap(동적 메모리)
Stack(함수 호출)

 

프로세스 특징

  • OS가 자원을 할당
  • 프로세스 간 통신 필요(IPC)
  • 컨텍스트 스위칭 비용 큼

2. 스레드(Thread)

 스레드는 프로세스 내부에서 실행되는 작업 단위입니다.

 하나의 프로세스 안에 여러 개의 스레드가 존재할 수 있습니다.

 

예시

웹 서버에서 요청 처리

프로세스 (웹 서버)
   ├ Thread 1 (요청1 처리)
   ├ Thread 2 (요청2 처리)
   └ Thread 3 (요청3 처리)

 

스레드 특징

  • 같은 프로세스의 메모리를 공유
  • 생성 비용이 작음
  • 컨텍스트 스위칭이 빠름
  • 동시성 처리에 유리

공유 영역

Code
Data
Heap

 

개별 영역

Stack

3. 프로세스 vs 스레드 차이

구분 프로세스 스레드
정의 실행 중인 프로그램 프로세스 내부 실행 단위
메모리 독립 메모리 메모리 공유
생성 비용 작음
안정성 높음 낮음
통신 IPC 통신 메모리 공유

 


4. 실무 예시(웹 서버)

예를 들어

Apache Tomcat 같은 WAS는 Thread 기반으로 요청을 처리합니다.

 

동작 예시

Client 요청 -> Thread Pool -> Thread가 요청 처리

여러 요청을 동시에 처리하기 위해 멀티 스레드 구조를 사용합니다.