격리 수준과 자원 공유의 필요성으로 고른다.
- 프로세스 A독립 메모리 (코드, 데이터, 힙, 스택)
- 프로세스 B독립 메모리 (코드, 데이터, 힙)
- 스레드 1공유 힙 사용, 자체 스택 소유
- 스레드 2공유 힙 사용, 자체 스택 소유
프로세스는 독립된 메모리 영역을 가진다. 한 프로세스가 죽어도 다른 프로세스에 영향을 주지 않는다. 안정성이 중요한 작업에 알맞다.
스레드는 같은 프로세스 안에서 메모리를 공유한다. 생성과 전환 비용이 적고 통신이 빠르다. 잦은 데이터 교환과 빠른 반응이 필요할 때 쓴다.
스레드는 공유 자원에 동시에 접근할 때 동시성 문제가 생긴다. 동기화 처리가 필요하며 오버헤드가 발생한다.