$백엔드 개발자 Rueun의 기술 블로그|Java · Spring · 클린 아키텍처🌱
#CS

프로세스와 스레드의 차이점 정리

@2026-02-12·2 min read

프로세스란?

프로세스는 실행 중인 프로그램으로, 독립된 메모리 공간(Code, Data, Stack, Heap)을 가집니다.

스레드란?

스레드는 프로세스 내에서 실행되는 흐름의 단위로, Stack만 독립적으로 가지고 나머지 메모리 공간은 공유합니다.

프로세스 vs 스레드

구분프로세스스레드
메모리독립적공유 (Stack만 독립)
통신IPC 필요공유 메모리로 가능
생성 비용높음낮음
안정성높음 (격리)낮음 (하나 죽으면 전체 위험)

컨텍스트 스위칭

  • 프로세스 컨텍스트 스위칭: 메모리 주소 공간 전환 필요 → 비용 큼
  • 스레드 컨텍스트 스위칭: Stack만 전환 → 비용 적음

Java에서의 스레드

JAVA
// Thread 상속
class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Thread running");
    }
}
 
// Runnable 구현
Runnable task = () -> System.out.println("Task running");
new Thread(task).start();

정리

프로세스와 스레드의 차이를 이해하면 동시성 프로그래밍의 기초를 다질 수 있습니다.

§ 목차