스레드
- 프로세스간 통신(IPC) 중 하나이다.
- 프로세스와 개념적으로 비슷하다. : 논리적 흐름제어
- 하나의 프로세스 → 여러개의 thread 가능
- (하나의 프로세스 내에 있는 쓰레드)는 (서로 다른 프로세스)보다 덜 isolated
- 프로세스 내의 thread 는 memory map을 공유한다.
스레드 vs. 프로세스

특징 |
스레드 |
프로세스 |
메모리 공간 |
공유 |
독립적 |
생성 비용 |
낮음 |
높음 |
통신 방식 |
메모리 공유 |
IPC 메커니즘 (파이프, 메시지 큐 등) |
격리 수준 |
낮음 |
높음 |
스레드의 장점
- 스레드는 프로세스보다 생성 및 관리 비용이 저렴합니다.
- 스레드는 동일한 프로세스 내에 존재하므로 메모리를 공유하여 쉽게 통신할 수 있습니다.
스레드의 단점
- 공유 자원 접근 문제 : shared reource를 다루는건 까다롭다.
- 스레드 안전성 문제 : Many established APIs 는 안전보호 x
스레드 활용 사례
스레드는 다음과 같은 상황에 적합합니다.
- 병렬 작업: 여러 작업을 동시에 처리하여 성능을 향상시킬 때 유용합니다.
- More rapid computation than can be performed on a single CPU
- 빠른 컨텍스트 전환: 스레드 간 컨텍스트 전환이 프로세스보다 빠르므로, 실시간 처리나 빠른 응답이 필요한 경우에 적합합니다.
- Very rapid change of control between parallel tasks
- 대용량 공유 데이터: 여러 스레드가 대용량 데이터를 공유하며 처리해야 하는 경우 효율적입니다.
- Lots of large, shared data structures