프로세스와 스레드의 개념
1. 프로세스 (Process)
- 운영체제에서 실행 중인 프로그램을 의미
- 독립적인 메모리 공간(Code, Data, Heap, Stack)을 가짐
- 하나 이상의 스레드를 포함할 수 있음
- 프로세스 간에는 기본적으로 메모리를 공유하지 않음
2. 스레드 (Thread)
- 프로세스 내에서 실행되는 작은 작업 단위
- 프로세스의 Code, Data, Heap을 공유하지만, 개별적인 Stack을 가짐
- 같은 프로세스 내에서 스레드 간 데이터를 쉽게 공유 가능
- 하나의 프로세스에는 여러 개의 스레드가 존재할 수 있음
프로세스와 스레드의 차이점
구분 | 프로세스 | 스레드 |
메모리 공유 | 독립적 | 프로세스 내 공유 |
실행 단위 | 독립적 실행 | 병렬 실행 |
자원 할당 | 별도 할당 (Code, Data, Heap, Stack) | Stack만 개별 할당 (Code, Data, Heap 공유) |
통신 방식 | IPC (메시지 큐, 파이프, 공유 메모리 등) 필요 | 프로세스 내에서 직접 접근 가능 |
생성 비용 | 높음 (새로운 메모리 공간 할당 필요) | 낮음 (기존 프로세스 자원 활용) |
종료 시 영향 | 독립적 종료 | 하나의 스레드가 비정상 종료되면 전체 프로세스에 영향 |






Share article