| 항목 | 스레드(Thread) | 프로세스(Process) |
|---|---|---|
| 정의 | 프로세스 내에서 실행되는 단위 | 운영체제에서 실행되는 독립적인 작업 단위 |
| 메모리 구조 | 같은 프로세스 내에서 메모리와 자원을 공유 | 각 프로세스는 독립적인 메모리 공간을 가짐 |
| 자원 공유 | 스레드 간 자원(메모리, 파일 등)을 공유 | 프로세스 간 자원 공유 불가(IPC 필요) |
| 생성 비용 | 상대적으로 적음(빠른 생성 및 관리) | 상대적으로 큼(메모리와 초기화 작업 필요) |
| 문맥 교환 비용 | 문맥 교환이 가벼움 | 문맥 교환이 상대적으로 무거움 |
| 통신 속도 | 공유 메모리를 이용하여 빠름 | IPC를 통해 느림 |
| 독립성 | 스레드는 같은 프로세스 내에서 서로 의존적 | 프로세스는 독립적으로 실행됨 |
| 안정성 | 한 스레드의 오류가 전체 프로세스에 영향 | 한 프로세스의 오류가 다른 프로세스에 영향 없음 |
| 적합한 작업 | IO 작업, 네트워킹, 사용자 입력 처리 | 대규모 연산, 독립적인 작업 처리 |